在我的第一个Rails项目中,我使用Ryan Bates的Nifty-Generators来创建初始应用程序文件。这给了我LayoutHelper
一个标题方法:
def title(page_title, show_title = true)
@content_for_title = page_title.to_s
@show_title = show_title
end
在我的主页视图中,我有一个简单的标题:
<%= title "Welcome" -%>
最后,在我的布局(application.html.erb
)中,我有:
<%- if show_title? -%>
<h1><%=h yield(:title) %></h1>
<%- end -%>
<%= yield %>
我所看到的是我的标题,“欢迎”,然后是show_title
传递(或默认为)的值。我想要前者,但不想要后者。我理解为什么布尔值被方法隐式返回,但我没想到它会被显示出来。布尔显示似乎作为主要内容yield
的一部分出现。
yield
命令还没有真正点击给我(我明白了,我只是不得到它,如果这有意义的话),所以我希望有人可以帮我理解为什么要打印布尔值以及如何让它停止。除了解决当前问题之外,这个答案可以帮助我更好地理解yield
的工作原理。
感谢。
答案 0 :(得分:3)
试试这个:
<% title "Welcome" %>
您想调用title
方法,而不是在调用它时写出其返回值。