Rails主键和对象ID
我正在访问具有典型主键id
的rails模型。 但是,当我在方法中访问它时,我收到以下警告。
Object#id will be deprecated; use Object#object_id
似乎它在对象id和模型的主键之间变得混乱。 有没有办法确保它使用字段id
?
听起来你调用的对象.id
实际上并不是ActiveRecord模型。 您应该只看到Ruby对象的警告,其中.id
是即将弃用的Object#object_id
版本。
但是,使用ActiveRecord模型访问字段主键的另一种方法是model.attributes['id']
因此您可以尝试这样做。
正如迈克指出的那样,你在非活动记录上调用了id
。 要validation, 请使用obj.class
检查对象的类 。
请注意,虽然鸭子类没关系…除非你认为对象是一个不同的类:)