私はユーザーに: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
最初に ':name'を' new/create'で作成できるようにしたいのですが、その後で ':name'を' '更新/編集 'できないようにしたいと思います。 –
入手しました。ただ私の答えを更新しました。 –
ありがとうございます。質問にリンクされている '.except'がまだRails 4で動作するかどうかは誰にも分かりますか? –