2016-04-26 59 views
0

這是我的RubyOnRails應用程序。我有一個ActiveRecord:Rails 3.2.12不能批量分配受保護的屬性

class Deposit < ActiveRecord::Base 
    attr_accessible :fk, :abs_kod, :neres 
    ... 
end 

我也有代碼控制器:

list.each do |d_item| 
     deposit = Deposit.find_or_create_by_fk(d_item[:fk]) 
     deposit.update_attributes d_item 
end 

但我不能任意值保存到「neres」字段。我得到一個錯誤

Can't mass-assign protected attributes: neres 

,並在我的數據庫中,我看到

| fk | abs_kod | neres | 
| 1 | 1  |  | 

我試圖做這樣的

deposit = Deposit.find_or_create_by_fk(d_item[:fk]) 
deposit.neres = d_item[:neres] 
deposit.update_attributes d_item 
deposit.neres = d_item[:neres] //twice, just in case 

我沒有幫助。另外我試圖從活動記錄中刪除attr_accessible。它也沒有幫助。有什麼問題?

P.S .: Attribure「neres」被添加晚於「abs_kod」和「fk」。

回答

0

要使用Rails的強大的應用程式PARAMS小於4版本,則需要寶石添加到您的寶石文件

gem 'strong_parameters' 

,並在配置組whitelist_attributes application.rb中的文件,以虛假

config.active_record.whitelist_attributes = false 

在控制器中,一定要添加一個model_params方法並列出需要列入白名單的屬性。

相關問題