0
我不想讓用戶更新他們的:name
。我發現這個question for Rails version 3但答案不適合我。我正在使用Rails 4.我可能只是有錯誤的語法。我無法獲得@user.update_attributes(params[:user])
的工作。只有:@user.update_attributes(user_params)
。我的編輯表單中沒有包含:name
,但我的理解(??)是,用戶仍然可以通過瀏覽器自行傳遞它,並使用當前代碼,他們可以更改:name
。限制哪些用戶屬性可以更新
class UsersController < ApplicationController
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
@user.update_attributes(user_params)
if @user.save
flash[:success] = "Profile updated"
redirect_to @user
else
flash[:danger] = "Profile update Unsuccessful"
redirect_to 'edit'
end
end
private
def user_params
params.require(:user).permit(:name, :email, :email_confirmation, :password, :password_confirmation)
end
我希望他們能夠用'new/create'創建':name' ...我只是不希望他們能夠'更新/編輯'他們的':name'後面。 –
明白了。剛剛更新了我的答案。 –
感謝此工作正常。有沒有人知道如果'.except'鏈接到問題仍然適用於Rails 4? –