私のアプリには、ユーザーが「会場」を選択するための選択ボックスがあります。この選択ボックスは、ご想像のとおり、フォームになっています。ページのどこかに、AJAX を介して新しい会場を作成するアクションもあります。新しい会場が作成されたら、これを反映するように会場選択ボックスを更新したいと思います。
私の解決策は、選択ボックスをパーシャルに配置し、コントローラーの作成アクションからパーシャルをレンダリングすることでした。
<div id="venue_select" style="clear: both;">
<%= render :partial => 'venue/venue_select_box' %>
</div>
パーシャルは次のようになります。
<%= f.collection_select :venue_id, @user_venues, :id, :name, :prompt => 'Select a venue' %>
ここで、f はフォーム参照です。
<% form_for :shows do |f| %>
問題は、パーシャルで f が定義されていないため、エラーが発生することです。1 つの解決策は、フォーム全体を含めることですが、フォーム全体を更新するわけではないので、その必要はないと思います。これをどうやって進めるかについてのアイデアはありますか?