2

控えめなajaxを使用したWebサイトがあります。

つまり、フローは次のとおりです。

  • リモートリンク
  • コントローラが管理するリクエスト
  • ブラウザに応答を送信するjs.erbビュー

すべてのjs.erbビューで、必要に応じてフラッシュメッセージを挿入したり、URLを更新したりするなど、同様の「メンテナンスアクティビティ」を実行したいと思います。

どうすればこれを乾かすことができますか?理想的には、毎回実行されるコードでパーシャルを使用しますが、これを行う方法が見つかりませんでした。

私のjs.erbファイル:

$("#challenge_actions").html("<%= escape_javascript(render partial: "challenges/best_practice_button")%>");
$("#flash_messages").html("<div id='flash_notice'><%= escape_javascript(flash[:notice])%></div>");

flash_messagesを使用して行を抽出し、それをすべてのjs.erbファイルに自動的に含めるにはどうすればよいですか?

4

2 に答える 2

3

htmlレイアウトと同じように、jsレイアウトを使用できます。

layouts / custom.js.erb

alert("<%=j flash[:notice] %>");
<%= yield %>

controllers / your_controller.rb

def your_action

  flash[:notice] = "hello world"
  @hello = "hello world"

  respond_to do |format|
    format.js { render layout: "custom" }
  end
end

your_action.js.erb

alert("<%= j @hello %>");
于 2012-10-16T10:29:21.110 に答える
0

erbでも部分テンプレートを使用できます。divのコンテンツをid"container"に置き換えたい場合は、jqueryを使用していると仮定して実行できます。

$('#container').html('<%= escape_javascript(render(:partial => 'mypartial'))%>')
于 2012-10-16T10:19:57.157 に答える