我试图在我的应用程序页面中加载一些javascript使用命名的yield块,但代码是重复的,因为加载我的视图页面的通用yield。像这样:
-----视图中的代码-----
<% content_for :bottom_scripts do %>
<script type="text/javascript">
Some Javascripts
</script>
<% end %>
------应用程序页面中的代码-----
<div id = "body">
<%= yield %>
</div>
<%= yield :bottom_scripts %>
脚本代码打印了两次,但我需要它只是在第二次输出中打印,有什么想法吗?
您可以在布局中使用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