Wie überspringen von Validierungen als admin während update_attributes?
Möchte ich überspringen, Validierung, wenn ich versuche, Benutzer Bearbeiten, als admin.
Modell
class User
...
attr_accessible :company_id, :first_name, :disabled, as: :admin
Controller
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
So, ich habe versucht zu ändern update
Aktion
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
Dann aber I dont haben Zugriff auf set :disabled
und :company_id
Attribute, da ich nicht weiß, wo man einstellen kann as: :admin
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Starken Parameter
Dies wurde ein Problem mit Schienen, für eine lange Zeit, in Rails 4 Sie sind die Einführung einer "Starken Parameter"
Können Sie starke Parameter gem in rails-3-Anwendungen als auch
Alternative: Context-Attribut
Anderen Weg, es zu tun, die Einführung eines Kontext-Variablen auf der user - Modell *Hinweis: ich bin nicht vertraut mit der 'als' option für attr_accessible*
In Ihrem admin-controller-set die is_admin_applying_update-Attribut auf true
HINWEIS: Sie können auch die Gruppe der Validierungs-und mit einer einzigen bedingten
Hack-Methode: