2015-10-16 42 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'