20、Rails开发中的杂项与路由机制详解

Rails开发中的杂项与路由机制详解

1. Active Record杂项

1.1 单位转换访问器方法

在处理数据时,有时需要进行单位转换。例如,将腕尺(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

1.2 对象标识

模型对象重新定义了Ruby的 id() hash() 方法,以引用模型的主键。这意味着具有有效ID的模型对象可以用作哈希键,但未保存的模型对象不能可靠地用作哈希键,因为它们还没有有效的ID。

两个模型对象在使用 == 比较时,如果它们是同一类的实例且具有相同的主键,则被认为是相等的。这意味着未保存的模型对象即使具有不同的属性数据,也可能被比较为相等。如果需要比较未保存的模型对象,可能需要重写 == 方法。

1.3 使用原始连接

可以使用底层的Active Record连接适配器执行SQL语句

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值