我正在尝试使用命名的yield块在我的应用程序页面中加载一些javascript,但代码是重复的,因为加载我的视图页面的通用yield。类似的东西:
-----视图中存在的代码-----
<% content_for :bottom_scripts do %>
<script type="text/javascript">
Some Javascripts
</script>
<% end %>
------我的申请页面中的代码-----
<div id = "body">
<%= yield %>
</div>
<%= yield :bottom_scripts %>
脚本代码打印两次,但是我需要它只是在第二次打印时打印出来,有什么想法吗?
答案 0 :(得分:1)
您可以在布局中使用content_for
而不是yield
当content_for
没有传递一个块时,它会输出存储在该标识符
在视图中:
<% content_for :foo do %>
<p>Bar</p>
<% end %>
布局:
<%= content_for :foo %>
http://apidock.com/rails/ActionView/Helpers/CaptureHelper/content_for