0

我在 application.html.erb 中有这样的声明:

<%= yield(:javascript) %>

我有以下 Javascript,它应该响应产量:

<% content_for : javascript do %>

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

  </script>

<% end %>

如果我将上面的块放在 home/index.html.erb 中,它可以正常工作,但我想以某种方式使其始终可用于 application.html.erb,而不仅仅是当我调用 home#index 时。

我怎样才能做到这一点,任何指针将不胜感激?

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 回答