use*_*081 0 ruby ruby-on-rails
在我的RoR 4.2应用程序中,所有页面都提供:标题,用于HTML标头<TITLE>标记.动态页面还提供:page_heading内容,它显示在我的应用程序页眉布局中.
为了保持一致的外观,我希望标题也显示在静态页面的应用程序页眉布局中,即:不提供page_heading时.
这是展示视图的开始代码:
<% provide(:title, 'Managing business rules') %>
<% content_for :page_heading do %>
<h1>Business Rule: <%= @business_rule.name %></h1>
<% end %>
----
Run Code Online (Sandbox Code Playgroud)
以下是_header.html.erb应用程序布局中嵌入的代码:
<h1> <%= yield(:page_heading.empty? ? :title : :page_heading) %> </h1>
Run Code Online (Sandbox Code Playgroud)
因此,对于静态页面:标题显示在IceWeasel标题栏中,并且在应用程序标题中也是如此,这是正确的.
但是,对于动态页面:标题显示在IceWeasel标题栏中,也显示在应用程序标题中,其中:page_heading是预期的.
符号上的条件:page_heading.empty?不起作用.
如何正确指定此条件并将预期符号提供给yield函数?
谢谢.
您可以使用content_for检查内容吗?
<h1>
<% if content_for? :page_heading %>
<%= yield :page_heading %>
<% else %>
<%= yield :title %>
<% end %>
</h1>
Run Code Online (Sandbox Code Playgroud)
或简而言之:
<h1><%= yield(content_for?(:page_heading) ? :page_heading : :title) %></h1>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
749 次 |
| 最近记录: |