在 Rails 中,特定于页面的 Javascript 的常见用法是:
(布局)
<head>
<% yield :javascript %>
</head>
( View )
<% content_for :javascript do %>
<script type="text/javascript">
$().whatever;
</script>
<% end %>
我讨厌重复脚本标签。为什么以下是一个坏主意?
(布局)
<head>
<script type="text/javascript">
<% yield :javascript %>
</script>
</head>
( View )
<% content_for :javascript do %>
$().whatever;
<% end %>
最佳答案
我同意这是最适合您的用例的内容。通常,当我使用 <% yield :javascript %> 时,其目的是添加特定于页面的库,这将限制您提出的方法。如果你想同时支持两者,我做了以下操作:
(布局)
<head>
<% yield :javascript_libraries %>
<script type="text/javascript">
<% yield :javascript %>
</script>
</head>
( View )
<% content_for :javascript do %>
$().whatever;
<% end %>
<% content_for :javascript_library do %>
<%= javascript_include_tag 'page-specific.js' %>
<% end %>
当然,大多数人将 javascript 库放在底部以优化页面加载,这样您就可以将其移动到您的布局中。
关于Javascript、Rails View 、content_for 和 DRYness,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5951653/