2015-05-13 81 views
0

我使用Rails 3.2.14,inherited_resource和strong_parameter gem.I只是跟着Strong Parameters in Rails 3.2.8步驟,但我收到錯誤,如下面,強大的參數不能大規模指派保護屬性

Can't mass-assign protected attributes:content, title, nature_bien_id, nature_transaction_id, nbr_chambres, nbr_pieces, section_id, city, zip, surface_habitable, surface_terrain 

我的控制器代碼就是這樣

def create 
    @mandat = current_user.mandats.new(mandats_params) 
end 
private 
def annonce_params 
    params.require(:annonce).permit(:created_at, :description, :image, :dpe, :nature_bien_id, :nature_transaction_id,:nbr_chambres, :nbr_pieces, :prix_net_acquereur, :section_id, :surface_habitable,:surface_terrain, :titre, :annonce_images_attributes, :user_id, :ville, :zip, :reference,:available_time, :is_valid, :close, :reasonclosing, :annonce_support_ids, :equipement_ids) 
end 

感謝提前

回答

0

在我的軌道項目中,我使用審計Gem.Refer Audited gem using strong Parameter。所以在我的模型

變化

class Mandat < ActiveRecord::Base 
    audited on: [:update] 

class Mandat < ActiveRecord::Base 
    audited :allow_mass_assignment => true,on: [:update] 

那麼它會完美的工作。

1

您必須關閉您的config/application.rb屬性保護:

config.active_record.whitelist_attributes = false 
+0

是的,我給,但仍然會發生錯誤 – Balachandran

+0

你重新啓動你的服務器? –

0

請檢查所有屬性要更新的attr_accessible定義列在您的型號:

attr_accessible :created_at, :description, :image, :dpe, :nature_bien_id, 
    :nature_transaction_id,:nbr_chambres, :nbr_pieces, :prix_net_acquereur, 
    :section_id, :surface_habitable,:surface_terrain, :titre, 
    :annonce_images_attributes, :user_id, :ville, :zip, :reference, 
    :available_time, :is_valid, :close, :reasonclosing, :annonce_support_ids, 
    :equipement_ids 
+0

我添加了所有的屬性,但同樣的錯誤 – Balachandran

+0

@Balachandran:我很抱歉,你需要使用'attr_accessible',而不是'attr_protected'。 – spickermann

+0

我忘記說在該模型中使用經過審計的寶石。我發現該解決方案並解決了我的問題。謝謝 – Balachandran

相關問題