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