Chcę pominąć sprawdzanie poprawności, gdy próbuję edytować użytkownika jako administrator.Jak pominąć sprawdzanie poprawności jako admin podczas update_attributes?
model
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
Więc starałem się zmienić update
działania w celu
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
Ale wtedy nie masz dostępu do ustaw :disabled
i :company_id
atrybuty bo nie wiem gdzie ustawić as: :admin
jestem nowy na szynach. Czy to jest bezpieczne? Czy ta metoda nie pokona punktu silnych parametrów? Czy też są mocne parametry przede wszystkim do podatności na masowe przypisywanie? –
mocne parametry są przeznaczone dla luk w zakresie nadawania mas, można użyć sprawdzania kontekstu w połączeniu z tym, nigdy nie używałem go do sprawdzania roli, zwykle gdy model jest aktualizowany z wielu formularzy, a walidacja musi się różnić między nimi – house9