1

私のサイトの各ページには、固有のタイトルがあります。レイアウトとヘルパーを使用してこれを行うことができると感じたとき、私は自分自身を繰り返し、複数のページにコードを追加しています。作業中のコードと、開発中の失敗したソリューションを示します。ヘルプが必要です

ページ タイトルは基本的に次の形式です。

<title>Company Name - Page Description</title>

現在、私のレイアウトはこれを行っています:

<%= content_for?(:page_title) ? yield(:page_title) : default_page_title %>

次のようなアプリケーション ヘルパー メソッドがあります。

def default_page_title
    content_tag(:title, 'My Company Name - the default description here')   
end

次に、各ページには次のようなものがあります。

<% content_for(:page_title) do %>
    <%= content_tag(:title,'My Company Name - Page specific description here') %>
<% end %>

それは機能しますが、これらのスニペットをすべてのページの上部に追加したくありません...また、各ページで「My Company Name -」を繰り返したくありません。ページの説明がすべてアプリケーション ヘルパーに入力され、アプリケーション レイアウトがコントローラーとアクションに基づいて適切なものを選択するソリューションを開発したいと考えています。

私は以下のようなヘルパーに取り組んでいます(さまざまな理由で失敗しています。誰かが私を助けてくれることを願っています):

def page_title
  content_tag(:title, "My Company Name - " + page_description )

  def page_description

    case params[:controller].params[:action]
    while public.index
    'Description for public controller index action'
    while public.contact
    'Description for public controller contact action'
   end
  end
end

これにより、各ページを変更する代わりに、application_helper のタイトルにページ固有の変更を加えることができます。

4

1 に答える 1

1

私はこれをお勧めしません..いくつかのプロジェクトで自分でやったのですが、ビューで指定された個々のタイトルでしばらくしてしまいました。より複雑なフォーム/ワークフローがある場合、パスとどのアクションが相関しているかを認識するのは簡単ではありません...

于 2013-01-21T16:27:23.440 に答える