Mam kłopot z 3 zadaniem 9 rodziału.
Podst. zmienne:
def setup
@user = users(:ola)
@other_user = users(:archer)
end
user.yml
archer:
name: Sterling Archer
email: duchess@example.gov
password_digest: <%= User.digest(‘password’) %>
Mam przerobić taki test:
test “should not allow the admin attribute to be edited via the web” do
log_in_as(@other_user)
assert_not @other_user.admin?
patch :update, id: @other_user, user: { password: FILL_IN,
password_confirmation: FILL_IN,
admin: FILL_IN }
assert_not @other_user.FILL_IN.admin?
end
Przerobiłem go tak:
test “should not allow the admin attribute to be edited via the web” do
log_in_as(@other_user)
assert_not @other_user.admin?
patch :update, id: @other_user, user: { password: “password”,
password_confirmation: “password”,
admin: true }
assert_not @other_user.admin?
end
Żeby test był do oblania zmieniłem users_params:
def user_params
params.require(:user).permit(:name, :email, :password,
:password_confirmation, :admin)
end
A tu akcja update:
def update
@user = User.find(params[:id])
if @user.update_attributes(user_params)
flash[:success] = “Profile updated”
redirect_to @user
else
render ‘edit’
end
end
I tu pojawił się kłopot, bo moja wersja odpowiedzi, w żaden sposób nie edytuje @other_user