2015-10-16 60 views
0

后,我加了两个领域的现有表使用迁移称为brands。在Rails的控制台:的Rails 4.2.3 activemodel的预防保存增加新的领域,以表

brand = Brand.first 
brand.user_id = 2 
brand.save 

我得到这个:

(0.2ms) BEGIN 
(0.1ms) ROLLBACK 
TypeError: nil is not a symbol 

我无法找到任何有意义的参考这个错误在任何地方。这是一个非常简单的操作,我真的没有理由让它失败。

错误正在从抛出:

activemodel-4.2.3/lib/active_model/dirty.rb:181:in `attribute_was' 

是:

# Handle <tt>*_was</tt> for +method_missing+. 
def attribute_was(attr) # :nodoc: 
    attribute_changed?(attr) ? changed_attributes[attr] : __send__(attr) 
end 
+1

您可以检查您是否品牌表中有ID列吗?当您尝试使用非默认主键创建活动记录模型 –

+0

巨大的捕获时,可能会出现此消息。我在这张桌子里没有身份证。它从外部来源填充,并且永远不能插入。我所需要做的就是更新它。但是我显然不能在没有声明唯一ID的情况下使用AR来做到这一点。 – AKWF

回答

0

设置表上的默认主键固定它:

self.primary_key = 'brand_id'