Rails の restful_authentication プラグインを使用して、ユーザーが自分のアカウント情報を変更できるようにしたいと考えています。
この 2 つのメソッドをユーザー コントローラーに追加しました。
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
# Only update password when necessary
params[:user].delete(:password) if params[:user][:password].blank?
respond_to do |format|
if @user.update_attributes(params[:user])
flash[:notice] = 'User was successfully updated.'
format.html { redirect_to(@user) }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
また、new.html.erbをedit.html.erbにコピーしました。リソースが routes.rb で既に定義されていることを考えると、簡単に動作することを期待していましたが、保存ボタンをクリックすると、 POST HTTP requestを使用して、updateではなくcreateメソッドが呼び出されます。その直後、セッションから自動的にログアウトします。
何か案は?