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? –