ruby-on-rails - Rails Content_for/yield 问题 - 重复内容

标签 ruby-on-rails ruby yield content-for

我正在尝试使用命名的 yield block 在我的应用程序页面中加载一些 javascript,但由于加载我的 View 页面的通用 yield,代码重复了。类似的东西:

----- View 中的代码-----

<% content_for :bottom_scripts do %>
    <script type="text/javascript">
             Some Javascripts
    </script>
<% end %>

------我申请页面的代码------

<div id = "body">
    <%= yield %>
</div>
<%= yield :bottom_scripts %>

脚本代码被打印了两次,但我只需要在第二次 yield 中打印它,有什么想法吗?

最佳答案

你可以在布局中使用 content_for 而不是 yield

content_for 没有传递一个 block 时,它输出存储在该标识符处的 block

在 View 中:

<% content_for :foo do %>
   <p>Bar</p>
<% end %>

在布局中:

<%= content_for :foo %>

http://apidock.com/rails/ActionView/Helpers/CaptureHelper/content_for

关于ruby-on-rails - Rails Content_for/yield 问题 - 重复内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7678038/

相关文章:

ruby-on-rails - 如何使用类自定义设计错误消息

mysql - 无法加载数据库配置。没有这样的文件 - database.yml - OpsWorks

ruby - 展平散列并连接键

ruby-on-rails - rake 任务使用命名空间耗尽命名空间

ruby-on-rails - 没有 class_name 的 FactoryBot 命名空间模型

python - 在递归代码中用 return 替换 Yield

ruby - 如果方法内部有 yield,但没有传递 block 怎么办?

mysql - 如何使用加载数据本地 infile 从迁移中加载 rails 中的 csv 文件?

ruby-on-rails - Rails yield 和 content_for 部分

ruby-on-rails - SIT in rails 不适用于 audited-activerecord