アプリケーション全体で使用する通貨のウィジェットがあります。すなわち。ユーザーは、通貨を EUR -> USD から、または約 13 の他の通貨に変更します。日付など、他にもいくつかのユースケースがありますが、これが最も簡単に説明できます。通貨は基本的に、通貨コントローラーを呼び出してセッション変数を更新し、JS を使用してページをリロードしますが、ページの特定の要素 (つまり、通貨の変更を反映し、他には何も反映しない) のみを取得したいと思います...
$("#places_list").html("<%= escape_javascript(render :partial => 'places/list') %>");
または別のコントローラーの場合
$("#locations").html("<%= escape_javascript(render :partial => 'locations/places') %>");
ただし、これらの要素は現在のコントローラーに固有のものです。つまり、リストなどのコントローラー固有のパーシャルをレンダリングします... (通貨の計算自体はアプリケーションヘルパーにあるため、新しいロジックは行われません)。通貨コントローラーは単純です。異なるコントローラーによってロードされたパーシャル。(場所、場所など)
この目的のために特定のすべてのコントローラーでアクションを作成する以外に、現在のコントローラーに固有の要素をレンダリングできるように動作させるにはどうすればよいですか? すなわち。現在のコントローラーを通貨に渡すことができます
<%= hidden_field_tag :info, controller.controller_name %>
それが理にかなっているのかどうかはわかりませんが、他の人の脳ではなくても、少なくとも自分の脳ではそうであることを願っています.