Javascript、Rails View 、content_for 和 DRYness

标签 javascript ruby-on-rails layout dry

在 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/

相关文章:

javascript - knockoutjs绑定(bind)不同的API对象

javascript - HTML5 音频标签/mediaelement.js 的加载指示器

ruby-on-rails - 无法捆绑安装 ruby​​ - 卡住获取 https ://rubygems. org/

ruby-on-rails - Rails 4 渲染 json 嵌套对象

ruby-on-rails - Rails 3 如何在 after_create 中获取当前记录 ID

javascript - 使用 JQuery 获取所有选中的单选按钮的值

javascript - 链接外部 JS 库并收到 XMLHttpRequest 错误

java - 正确的布局可根据每种屏幕尺寸灵活设置 JFrame 和 JInternalFrame

php - 轻量级、基于 PHP 的布局框架……知道吗?

android - 按钮布局成一圈?