Rails主键和对象ID

时间:2010-01-31 23:15:47

标签: ruby-on-rails

我正在使用典型的主键id访问rails模型。但是,当我在方法中访问它时,我收到以下警告。

Object#id will be deprecated; use Object#object_id

似乎它在对象ID和模型的主键之间变得混乱。有没有办法确保它使用字段id

2 个答案:

答案 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

请注意,虽然鸭子类没关系......除非你认为对象是一个不同的类:)