2

account/settingsアカウントを更新するためにアクセスできるページがあります。これは単一のリソースであるため、自分のアカウント設定のみを更新できます (または更新する必要があります)。フォーム エラーが表示されると、おかしな URL 形式が表示されます。

オン/account/settings/editの状態でエラーのあるフォームを送信しようとすると (有効な電子メール アドレスではないなど)、/account/settings.1何が問題なのかを示す場所にリダイレクトされます (この例では、有効な電子メール アドレスではありません)。

すべてが「機能」しますが、なぜ.1URL に追加されているのか疑問に思っていました。エラーを修正できる場所に返送されると思いましたaccount/settingsaccount/settings/edit私は何か間違ったことをしていますか?

ルート.rb

namespace :account do
  resource :settings, :only => [:show, :edit, :update]
end

settings_controller.rb

def edit
  @account = Account.find(session[:account][:id])
end

def update
  @account = Account.find(session[:account][:id])
  if @account.update_attributes(params[:account])
    redirect_to account_settings_path
  else
    render 'edit'
  end
end

レーキルート

edit_account_settings  GET  /account/settings/edit(.:format)  account/settings#edit
     account_settings  GET  /account/settings(.:format)       account/settings#show
     account_settings  PUT  /account/settings(.:format)       account/settings#update
4

1 に答える 1

3

edit_account_settings_path, NOTを使用してパスを生成してくださいedit_account_settings_path(@user)。あなたが言うように、それらは1つしかないため、単一のリソースの場合、リソースを渡すべきではありません。

于 2013-05-24T10:48:13.187 に答える