2013-10-23 26 views
5

Strong_params koşullu hale getirmenin bir yolu var mı? 2 ayrı yöntem yazmaya gerek yok mu? Belli bir durum Örneğinraylar 4 güçlü params: şartlı kılar mı?

doğru olduğunda bir izin listesine belirli özelliklerini eklemek istiyorum durumunda:

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

bu var: rol nitelik Örneğin yukarıda izin. Rails.env.development'te bunu yapmanın bir yolu olduğunda bu özelliğe izin verilmesini istiyorum.

cevap

1

Bir çözüm bulamadım, bu yüzden 2 yöntem yaptım ve kayıtları işlemek için doğru param yöntemini çağırdım.

8

Bu, istenen sonuçlara ulaşır mı?

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

Özür dilerim, sadece cevaplanan tarihte gördüm. Bu soru oldukça eski. –

+0

Eski ya da değil, verdiğiniz cevap geçerli ve kullanışlı. Sadece kafamın sözdizimi etrafına sarılmasına ihtiyacım var, ama en azından bunu kullanacağımı düşünüyorum! – RonLugge

+0

Lütfen açıklayın! – Matthias