为Devise页面设置浏览器和页面标题?

时间:2012-08-11 15:51:53

标签: ruby-on-rails ruby-on-rails-3 devise

我有为浏览器和页面本身设置标题的方法。在我的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?我也尝试将相同的代码放在注册助手中,但这也没有用。我该怎么办?

1 个答案:

答案 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" %>