我已經開始學習Rails,並且陷入了第9章的第三個練習。Railstutorial.org邁克爾哈特爾第9章練習3「不應該允許通過網絡編輯管理員屬性」
的鍛鍊看起來是這樣的:
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
我的問題是last Fill_IN >> assert_not @other_user.FILL_IN.admin
?
@other_user
從夾具取出,看起來像這樣:
archer:
name: Sterling Archer
email: [email protected]
password_digest: <%= User.digest('password') %>
Update action
看起來是這樣的:
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
我還添加:admin
到user_params所以:admin param
可以修改:
def user_params
params.require(:user).permit(:name, :email, :password,
:password_confirmation, :admin)
end
answe r我認爲是正確的是:
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: @other_user.password,
password_confirmation: @other_user.password_confirmation,
admin: true }
assert_not @other_user.admin?
end
但它看起來像@other_user沒有被修改,所以我認爲該錯誤是在最後斷言。
我的答案是錯的,我不能讓這個測試失敗了,這是因爲在過去的斷言"assert_not @other_user.FILL_IN.admin?"
我不知道要放什麼東西在FILL_IN部分。我試圖切斷FILL_IN,但這不起作用。
你的問題是什麼? – Substantial 2014-10-09 04:18:06
assert_not @ other_user.FILL_IN.admin?<<填寫FILL_IN以提交此測試的內容。 – Kask 2014-10-09 04:31:19