一尘不染

在Rails 3应用程序中添加页面特定JavaScript的最佳方法?

javascript

Rails 3具有一些不引人注目的JavaScript,这非常酷。

但是我想知道最好的方法是为特定页面包含其他JavaScript。

例如,我以前可能做过的地方:

<%= f.radio_button :rating, 'positive', :onclick => "$('some_div').show();" %>

我们现在可以使用类似的方法使其变得不引人注目

<%= f.radio_button :rating, 'positive' %>

# then in some other file
$('user_rating_positive').click(function() {
  $('some_div').show();
}

所以我想我的问题是在哪里/如何包含该JavaScript?我不想填写该application.js文件,因为此JavaScript仅适用于该视图。我应该以某种方式为每个页面包含一个自定义JavaScript文件,还是将其粘贴在标题所要查找的实例变量中?


阅读 289

收藏
2020-05-01

共1个答案

一尘不染

我想做的是将每个视图的Javascript包含在一个content_for :head块中,然后yield在应用程序布局中添加到该块。例如

如果很短,则:

<% content_for :head do %>
  <script type="text/javascript">
    $(function() {
      $('user_rating_positve').click(function() {
        $('some_div').show();
      }
    });
  </script>
<% end %>

或者,如果更长,则:

<% content_for :head do %>
  <script type="text/javascript">
    <%= render :partial => "my_view_javascript"
  </script>
<% end %>

然后,在您的布局文件中

<head>
  ...
  <%= yield :head %>
</head>
2020-05-01