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检查对象的类 。

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