Ruby on rails 3.2 由于某种原因,RubyonRails中的yield(:title)永远不等于false
即使我没有为页面设置Ruby on rails 3.2 由于某种原因,RubyonRails中的yield(:title)永远不等于false,ruby-on-rails-3.2,Ruby On Rails 3.2,即使我没有为页面设置标题(助手方法),“默认页面标题”也不会显示。由于某种原因,出现了“”(收益率(:title)的值)而不是它 为什么会发生这种情况?这只是Rails设计的一部分。你不能改变这种行为 您应该检查yield(:title).是否为空?为true或false,以查看是否调用了(:title)的内容 例如,而不是: #layouts/application.html.haml %title = yield(:title) || "Default page title
标题
(助手方法),“默认页面标题”
也不会显示。由于某种原因,出现了“”
(收益率(:title)的值)而不是它
为什么会发生这种情况?这只是Rails设计的一部分。你不能改变这种行为 您应该检查yield(:title).是否为空?为true或false,以查看是否调用了(:title)的内容 例如,而不是:
#layouts/application.html.haml
%title
= yield(:title) || "Default page title"
= " | DefaultSite.com"
#application_helper.rb
def title(page_title)
content_for(:title) { page_title }
end
你想要:
yield(:title) || "Default page title"
这只是检查它是否为空,如果为空,则应用默认值,否则使用标题。在这种情况下,我会使用
present吗?
而不是empty?
我想您可以使用其中一种。这取决于冒号之间参数的放置方式。您还可以将其缩短为yield(:title)。presence | |“Default page title”
(yield(:title).empty? ? "Default page title" : yield(:title))