Kullanıcıyı yönetici olarak düzenlemeye çalıştığımda doğrulama işlemini atlamak istiyorum.Güncelleme_görünümleri sırasında doğrulamaları nasıl yönetici olarak atlayabilirim?
Modeli
class User
...
attr_accessible :company_id, :first_name, :disabled, as: :admin
Kontrolör
class Admin::UsersController
...
def update
@user = User.find(params[:id])
@user.update_attributes(params[:user], as: :admin)
redirect_to edit_admin_user_path(@user), :notice => "User Account Updated"
end
yüzden
def update
@user = User.find(params[:id])
@user.attributes = params[:user]
@user.save(validate: false)
redirect_to edit_admin_user_path(@user), :notice => "User Account Updated"
end
için update
eylemi değiştirmeye çalışmış Ama sonra 0 ayarlamak erişiminiz yok
@user = User.find(params[:id])
@user.assign_attributes(params[:user], as: :admin)
@user.save(validate: false)
Ben kullanabilirsiniz raylara yeni. Bu güvenli midir? Bu yöntem güçlü parametreler noktasını bozmaz mı? Ya da öncelikli olarak kitlesel atama zafiyetleri için güçlü parametreler mi? –
güçlü parametreler toplu atama güvenlik açıkları içindir, bağlam geçerliliğini bununla birlikte kullanabilirsiniz, genellikle bir modelin birden çok formdan güncelleştirildiği ve doğrulama gereksinimlerinin aralarında farklılık gösterdiği durumlarda rol denetimi için hiç kullanmadım – house9