Draft.railstutorial.org zadanie 9.3

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