什么是在rails 3中设置页面标题的正确方法.目前我正在做以下事情:
应用程序/视图/布局/ application.html:
<%= render_title %> <%= csrf_meta_tag %>
应用程序/佣工/ application_helper.rb:
def render_title return @title if defined?(@title) "Generic Page Title" end
应用程序/控制器/ some_controller.rb:
def show @title = "some custom page title" end
有没有其他/更好的方法来做上述事情?
你可以一个简单的帮手:
def title(page_title) content_for :title, page_title.to_s end
在你的布局中使用它:
<%= yield(:title) %>
然后从你的模板中调用它:
<% title "Your custom title" %>
希望这可以帮助 ;)
没有必要创建任何额外的函数/帮助器.你应该看看文档.
在应用程序布局中
<% if content_for?(:title) %> <%= content_for(:title) %> <% else %>Default title <% end %>
在具体的布局中
<% content_for :title do %>Custom title <% end %>
我发现apeacox的解决方案对我不起作用(在Rails 3.0.3中).
相反,我做了......
在application_helper.rb
:
def title(page_title, options={}) content_for(:title, page_title.to_s) return content_tag(:h1, page_title, options) end
在布局中:
<%= content_for(:title) %>
在视图中:
<% title "Page Title Only" %>
要么:
<%= title "Page Title and Heading Too" %>
注意,这也允许我们检查是否存在标题,并在视图未指定标题的情况下设置默认标题.
在布局中我们可以做类似的事情:
<%= content_for?(:title) ? content_for(:title) : 'This is a default title' %>