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

标签 javascript ruby-on-rails ruby-on-rails-3

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 仅适用于这一 View 。我应该以某种方式为每个页面包含一个自定义 JavaScript 文件,还是将其粘贴到标题查找的实例变量中?

最佳答案

我喜欢在 content_for :head block 中包含按 View 的 Javascript,然后在应用程序布局中将该 block 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>

关于javascript - 在 Rails 3 应用程序中添加页面特定 JavaScript 的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3437585/

相关文章:

ruby-on-rails - Ruby on Rails : getting associated values to display

jquery - Rails 3 UJS - Controller 被 link_to 调用两次 :remote

javascript - 使用两个中间 $.getJSON 调用将字符串数组转换为对象数组

javascript - 如何使用指令用新的后备 src 更新 src?

javascript - 如果表单已验证,则打开警报框

ruby-on-rails - 如何在 Rails 3.1 Asset Pipeline 中使用更少的变量

ruby-on-rails - 如果在 excel 中更改了该行的任何单元格,如何在该行中添加标识符?

ruby-on-rails - 使用 Chronic 会损害您的时间感吗?

ruby-on-rails - 阻止 rake db :migrate 的 Drop_table 问题

javascript - 单击 iFrame 不会模糊 Ext Combobox