2011-03-28 49 views
2

所以,我創建了以下遷移:Rails3中遷移添加新列不值保存到表

class AddAclToUsers < ActiveRecord::Migration 
    def self.up 
    add_column :users, :acl, :integer 
    end 

    def self.down 
    remove_column :users, :acl 
    end 
end 
然而

,修改在視圖中的各種ERB文件後,值edit.html.erb進入不會保存到數據庫中。

我可以手動啓動SQlite3並選擇*表格並查看該列已創建,但沒有輸入值。我也可以手動更新或插入到控制器正確查詢和顯示的新列中。

關於什麼可能是錯誤的框架udate/save?

-daniel

+0

你能pastie相關的控制器,模型和視圖代碼? – 2011-03-28 01:42:59

回答

3

請檢查是否存在的attr_accessibleUser模型的列表。如果您使用Devise像gem/plugin進行身份驗證,則模型中將包含attr_accessible的列表。

添加新屬性(acl在您的情況)到attr_accessible列表。

如果不是這種情況,我希望你能粘貼您的視圖,控制器和模型代碼

+0

因此,當我複製粘貼PasteBin時,我明白了將新字段添加到屬性訪問器的意思 - 非常棒的調用。我會嘗試一下並回來 - 是的。這是訣竅。謝謝你的提示。 – Daniel 2011-03-30 00:20:00

+1

@丹尼爾:你可以隨時將答案標記爲已接受......;) – Pravin 2011-03-30 04:24:37

+0

在rails 4中,查看你的控制器(在你的情況下可能是users_controller.rb)。底部是一個私人部分,其功能需要許可字段。你會注意到許可證部分沒有這個新字段。添加它。 – look 2013-04-26 16:54:31