2015-11-08 50 views
1

我們剛剛從4.0.1升級到rails 4.1.13。我們拖着我們的腳步來實現強大的參數。因此,我們仍然使用protected_attributes寶石,所以我們可以使用舊的行爲。爲什麼我在使用protected_attributes時遇到ForbiddenAttributesError gem

現在,我們得到ActiveModel::ForbiddenAttributesError。我不明白爲什麼,因爲我們使用的是protected_attributes寶石..

+0

'protected_attributes'寶石,據我記得,你需要添加'attr_accessible'的,這將在應用程序中質量分配任何屬性。如果你試圖分配一個沒有標記爲可訪問的屬性,你會得到這個錯誤。如果你有很強的參數是完全多餘的,因爲它會要求你允許每個屬性兩次,一次在控制器中,一次在模型中。 – BroiSatse

+0

它確實修復它。但奇怪的是,它在4.0.1下工作沒有它.. – ErwinM

+0

我相信Rails 4.01只是發出警告,以便開發人員有一點時間來實現強參數。 – max

回答

1

基本上可以使用下面的代碼片段,以比模型

attr_protected :id 

的id屬性等質量分配屬性安全標記請請注意,這樣做會使得您的模型的id以外的所有屬性都可以安全地進行批量分配。 如果你的大多數模型的屬性的可分配質量,我想用attr_protected而不是使用attr_accessible更爲合理,因爲它做同樣的工作,而無需編寫多行代碼。

相關問題