如何验证变量是否传递给模板?

时间:2016-03-30 12:57:13

标签: ruby-on-rails ruby-on-rails-4

情况就是这样:

application.html.erb

<html>
<title><%= yield(:title) + ' | ' if :title.present? %> Website Name</title>
....

home.html.erb

<% provide(:title, 'Home') %>

所以我只想在provide提供此类标题的情况下打印特定页面标题。

但似乎尝试的所有方法都返回相同的东西,或者提供变量:title

>> defined? :title
=> "expression"
>> defined? :anything
=> "expression"
>> :title.present?
=> true
>> :anything.present?
=> true
>> :title.nil?
=> false
>> :anything.nil?
=> false 

1 个答案:

答案 0 :(得分:1)

我发现最方便的方法是将它添加到您的application_helper.rb文件中:

<%= provide(:title, "My About Section") %>

然后在每个页面视图上,您​​可以将顶部设置为:

<title><%=full_title(yield(:title))%></title>

然后在头部分的应用程序/布局视图中,您可以通过以下方式调用它:

com.android.support:design

这使方法“full_title”检查应用程序布局视图中是否提供了任何内容而不是逻辑。