請解釋一下,如何使用多種方法在數據庫中創建記錄,更改屬性我不想成爲attr_accessible
。批量分配問題
例如,在用戶模型:
attr_accessible :email, :password, :password_confirmation, :guest
我不想「管理員」真的還是假的行放在這裏,因爲安全問題的
請解釋一下,如何使用多種方法在數據庫中創建記錄,更改屬性我不想成爲attr_accessible
。批量分配問題
例如,在用戶模型:
attr_accessible :email, :password, :password_confirmation, :guest
我不想「管理員」真的還是假的行放在這裏,因爲安全問題的
您可以手動分配屬性,例如如果你的模型被命名爲用戶,你可以做到以下幾點:
user = User.first
user.update_attributes(attributes_hash)
user.admin = true
user.save
attr_accessible僅用於通過update_attributes方法例如質量分配,但你總是可以分配通過直接調用它,就像我上面的示例一樣。
我想你可能會問如何在測試或開發環境中更改管理員屬性,而無需將其添加到attr_accessable
。
一種方法是toggle
方法。例如,
user = User.first
user.admin?
=> false
user.toggle!(:admin)
user.admin?
=> true
有關toggle
要考慮的幾件事情。該屬性必須作爲符號傳遞,並且所有回調和驗證都會被跳過。換句話說,對測試和開發之外的任何事情要小心。因此,您可以如何批量分配管理員屬性,而無需將其添加到attr_accessable
。
也許你想允許只爲管理員更改管理員行,所以使用'attr_accessible:email::password,:password_confirmation,:guest,:admin,as :: admin',然後更新'update_attributes({admin:true },如::admin)'(質量分配) –