我正在使用典型的主键id
访问rails模型。但是,当我在方法中访问它时,我收到以下警告。
Object#id will be deprecated; use Object#object_id
似乎它在对象ID和模型的主键之间变得混乱。有没有办法确保它使用字段id
?
答案 0 :(得分:5)
听起来你称之为.id
的对象实际上并不是ActiveRecord模型。您应该只看到.id
即将被弃用的Object#object_id
版本的Ruby对象的警告。
但是,使用ActiveRecord模型访问字段主键的另一种方法是model.attributes['id']
,所以你可以试试。
答案 1 :(得分:2)
正如迈克指出的那样,你在非活动记录上打电话给id
。要验证check out the object's class by using obj.class
。
请注意,虽然鸭子类没关系......除非你认为对象是一个不同的类:)