2014-03-12 32 views
0

您好我做在控制檯簡單的模型創建在我的開發環境,一切工作正常工作然而,在Heroku上我得到一個:Heroku的軌道控制檯種子不可能大規模指派保護屬性MassAssignment錯誤

*: Can't mass-assign protected attributes: name, price, numobjects* 

我在heroku日誌中看到它插入nil值。

我的命令是:

Plan.create!(:name => "Max", :price => 3, :numobjects => 50) 

這工作得很好,我本地SQLite的環境,但不是在Heroku的和Postgres

+0

而這些屬性是可以訪問的嗎? (使用attr_accessible) – Danny

+0

不是他們不是。他們應該是?我的本地環境如何從控制檯創建批處理作品? – Ayrad

回答

1

通常情況下,如果按照這種方式創建對象,則會檢查質量分配保護,因此應該可以訪問這些屬性。

但是,如果你正在創建該對象的唯一地方是從控制檯,或從數據庫內的種子,我不會讓他們訪問的,而是使用

Plan.create!(:name => "Max", :price => 3, :numobjects => 50, :without_protection => true) 

這樣你否決,只有一次,檢查欄通常會這樣做,在受控環境中作爲命令外殼或數據庫種子很好。

0

here就是答案。

質量分配通常意味着將屬性傳遞給 作爲屬性哈希的一部分創建對象的調用。也就是說,您將一個散列中的 一組屬性傳遞到創建新對象的調用中。

相關問題