0

私はapplication.html.erbにこのステートメントを持っています:

<%= yield(:javascript) %>

そして私は次のJavascriptを持っています。これはyieldに応答するはずです。

<% content_for : javascript do %>

  <script type="type/javascript">
    $(function() {
       call_to_function();
   });

  </script>

<% end %>

上記のブロックをhome/index.html.erbに配置すると、問題なく機能しますが、home#indexを呼び出すときだけでなく、いつでもapplication.html.erbで利用できるようにしたいと思います。

どうすればこれを達成できますか?ポインタをいただければ幸いです。

4

1 に答える 1

0

使用する代わりに

 <%= yield(:javascript) %> 

javaスクリプトをapp/views / layoutのapplication.html.erbに直接配置して、コードを共有し、すべてのページを破棄することができます。

全体的に同じ内容の場合は、yieldを使用する必要はありません。Yieldは、各ページに固有のコードが異なる場合に使用されます。各ページから、yieldを呼び出して、yieldブロックのコンテンツを実際に置き換えます。したがって、<%= yield(:javascript)%>を次のように置き換えます

 <script type="type/javascript">
$(function() {
   call_to_function();
});

すべてのページに表示されます。

于 2012-09-04T18:05:12.807 に答える