-1

これらは私のルートです:

resources :auctions do
  resources :bids
end

auctions#show入札用のフォームを含むビューがあります。

= form_for [@auction, @bid] do |form|
  = form.input :maximum
  = form.button :submit

POSTこれはもちろんauctions/:auction_id/bids

私はこのbids#createアクションを持っています:

def create
  #...some_logic...
  if @bid.save
    #...happy_face...
  else
    # See Below
  end
end

この「入札でロジックが保存されなかった場合」には、次のようなものがあります。

render 'auctions/show'

これはレンダリングを試行する必要があります(実際に実行します)が、次のapp/views/auctions/show.html.erbエラーが発生します。

Missing partial bids/info-panel, application/info-panel with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in:
    * "app/views"
    * "gems/devise-2.0.4/app/views"

明らかにこれは問題です!パーシャルのapp/views/bids代わりに探しています。app/views/auctions

app/views/auctionsこれらのパーシャルのコンテキストを作成するにはどうすればよいですか?

4

2 に答える 2

1

これはエラー状態であるため、テンプレートをレンダリングする代わりに、オークション/ショー アクションにリダイレクトしないでください。リダイレクトでエラー メタデータを渡すことができます。これにより、オークション/表示アクションがエラー状態であることを認識し、それに応じてフォームをレンダリングできます。

于 2012-05-14T03:40:55.450 に答える
1

このような何かがそれを行う必要があります:

<%= render :partial => "auctions/info-panel" %>

先頭のディレクトリを含めない場合は、現在のディレクトリが想定されます。

于 2012-05-13T22:31:58.367 に答える