ルートを正しく設定する方法がわかりません。
私のアプリには、サイト所有者が住所情報を更新できるビューがあります。newアクションとcreateアクションはサインアップ プロセスの一部であり、signups_controller
. 編集および更新アクションは にありますsettings_controller
。
ユーザーが設定エリアに入ると、編集フォームのみが表示されます。入力すると、ユーザーは同じフォームに戻り、フラッシュ メッセージまたはエラー メッセージが表示されます。 コントローラは次のようになります。
class SettingsController < ApplicationController
def edit
@account = current_account
@account.companies.first
@account.companies.first.addresses.first
@account.companies.first.phones.first
end
def update
@account = current_account
if @account.update_attributes(params[:account])
redirect_to edit_setting_path
flash[:notice] = "Success!"
else
render :edit
end
end
end
私のルートでは、単純に次のとおりです。
resources :settings
サイトのこの領域へのリンクは、基本的な RESTful という名前の linke であり、パラメーター オプションがあります。
edit_setting_path(:id => current_account.id)
ユーザーがこのページに到達すると、次の URL が表示されます。
http://domainname.com/settings/1/edit
フォームを送信してエラーが発生すると、URL は次のように変わります。
http://domainname.com/settings/1
URL が変更されるのはなぜですか? 最初の編集ビューと同じままにする方法はありますか? 失敗した更新でリダイレクトを試みましたが、エラー メッセージが表示されません。
何か案は?