私の Ruby on Rails アプリケーションでは、各グループには多くの費用が含まれています。ルートをネストしたので、経費は親グループの子エンティティとしてのみ入力されます。これは routes.rb からの抜粋です。
resources :groups do
resources :expenses
end
/groups/:group_id/expenses/new から送信された経費が保存されない場合に、「新規」アクションをレンダリングする方法がわかりません。私のexpenses_controller.rbでは、createアクションがどのように定義されているかを以下に示します:
def create
@expense = Expense.new(params[:expense])
@expense.group_id = params[:group_id]
if @expense.save
redirect_to group_expense_path(@expense.group.id, @expense.id)
else
render 'new'
end
end
経費の検証に満足し、@expense.save が機能するようになると、すべてが正常に機能します。ただし、失敗してコードが「新規」をレンダリングしようとすると、次のようになります。
undefined method `expenses_path' for #<#<Class:0x007fd408b1fd58>:0x007fd408f21ca8>
したがって、ネストされたルーティングについて何か問題があると思います。ユーザーを新しいフォームに戻し、最初に送信しようとしたデータのエラーを flash[] パラメーターを介して表示するにはどうすればよいですか?