2013-10-23 80 views
5

有沒有辦法讓strong_params有條件? 無需編寫2個獨立的方法?如果其中一個想某些屬性添加到允許列表當某個條件爲真rails 4 strong params:使它們有條件嗎?

例如:

devise_parameter_sanitizer.for(:user) {|u| u.permit(:user, 
                :email, 
                :role, 
                )} 

我有這樣的:角色屬性允許在上面的例子。我只想在Rails.env.development中允許這個屬性被允許時有辦法做到這一點?

回答

1

還沒有找到解決方案,所以我做了2個方法並調用正確的param方法來處理記錄。

8

這是否達到了預期的效果?

user_params = [ :user, :email, (:role if Rails.env.development?) ].compact 
devise_parameter_sanitizer.for(:user) { |u| u.permit(*user_params) } 
+0

我的歉意,剛剛看到答案的日期。這個問題很古老。 –

+0

老或不老,你給的答案是一個有效和有用的答案。只需要將我的頭繞在語法上,但我認爲至少我會使用它! – RonLugge

+0

請解釋! – Matthias