我有为浏览器和页面本身设置标题的方法。在我的Devise页面上,我想设置这两种方法,但我不确定如何。
我的代码:
助手/ application_helper
def title # for entire application
base_title = "Testing"
if @title.nil?
base_title
else
"#{base_title} - #{@title}"
end
end
def page_title # for page header partial
"#{@page_title}"
end
视图/布局/应用
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<%= csrf_meta_tag %>
<%= favicon_link_tag %>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
</head>
<body>
<div id="container">
<%= render "shared/page_header" %>
<%= render "shared/flash_message" %>
<%= yield %>
</div>
</body>
</html>
视图/共享/ _page_header
<% unless @page_title.blank? %>
<div id="page-header">
<span><%= @page_title %></span>
</div>
<% end %>
现在我有一个RegistrationsController可以在需要时覆盖功能,但是因为它继承到DeviseController,我认为它不能到达Application Helper?我也尝试将相同的代码放在注册助手中,但这也没有用。我该怎么办?
答案 0 :(得分:3)
也许你可以使用;
application_helper.rb
module ApplicationHelper
def title(page_title)
content_for(:title) { page_title }
end
end
application.html.erb
<title><%= yield :title %></title>
视图
<%= title "Your page title here" %>