Rails开发中的杂项与路由详解
一、Active Record杂项
1.1 单位转换访问器方法
在处理数据时,可能会遇到单位转换的需求。例如,定义一个 ProductData 类,其中包含长度单位从腕尺(cubits)到英寸(inches)的转换方法:
class ProductData < ActiveRecord::Base
CUBITS_TO_INCHES = 18
def length
read_attribute("length") * CUBITS_TO_INCHES
end
def length=(inches)
write_attribute("length", Float(inches) / CUBITS_TO_INCHES)
end
end
在上述代码中, length 方法将存储的腕尺长度转换为英寸, length= 方法将传入的英寸长度转换为腕尺并存储。
1.2 对象标识
在Active Record中,模型对象重新定义了Ruby的 id() 和 hash() 方法,以引用模型的主键。这意味着具有有效ID的模型对象可以用作哈希键,但未保存的模型对象由于没有有效ID,不能可靠地用作哈希键。
两个模型对象在使用 == 比较时,如果它们是同一类的实例且具有相同的主键,则被认为是相等
超级会员免费看
订阅专栏 解锁全文
10

被折叠的 条评论
为什么被折叠?



