我的用戶模型中有一個字段受保護,因爲它確定了許可級別。所以它應該被保護,而不是可以批量分配的。所以即使屬性在3.2中被默認保護,這實際上是我想要的行爲。在Rails中分配受保護的屬性
但是,在一個控制器方法中,我希望允許經理分配此字段,例如用戶創建或用戶更新。
如何允許爲特定控制器操作分配該屬性?
例如,我有我的控制器:
# app/controllers/admin/users_controller.rb
def create
@user = User.new(params[:user])
# ...
end
現在我會做的是從params[:user]
排除clearance
,但它似乎得到過濾掉,提高和異常達到該行甚至之前(我嘗試在該行之前放置一個debugger
,甚至將其註釋掉,但仍然引發異常)。
受保護的屬性會在哪裏被捕獲,如果不是在撥打User#new
?
受保護的屬性在調用'User#new'之前應該被捕獲,除非像我的情況那樣,gem Cancan加載資源。 –