我试图使用命名的yield块在我的应用程序页面中加载一些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 %>

脚本代码被打印了两次,但是我只需要第二次打印就可以了,有什么想法吗?

最佳答案

您可以在布局中使用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

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

10-16 23:19