0

我有为浏览器和页面本身设置标题的方法。在我的设计页面上,我想设置这两种方法,但不知道如何设置。

我的代码:

助手/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?我还尝试将相同的代码放在注册助手中,但这也不起作用。我该怎么办?

4

1 回答 1

3

也许你可以使用;

application_helper.rb

module ApplicationHelper
  def title(page_title)
    content_for(:title) { page_title }
  end
end

应用程序.html.erb

<title><%= yield :title %></title>

看法

<%= title "Your page title here" %>
于 2012-08-11T18:52:51.647 回答