0

ブラウザとページ自体のタイトルを設定するメソッドがあります。Devise のページで、これら 2 つのメソッドを設定したいのですが、方法がわかりません。

私のコード:

ヘルパー/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

application.html.erb

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

見る

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