キーワードとストレート テキストに Rails オブジェクトを含めたいのですが、コードは明らかに正しい方法ではありません...どうすればよいですか?
set_meta_tags :keywords => %w[keyword1 keyword2 #{params[:hospital]}]
キーワードとストレート テキストに Rails オブジェクトを含めたいのですが、コードは明らかに正しい方法ではありません...どうすればよいですか?
set_meta_tags :keywords => %w[keyword1 keyword2 #{params[:hospital]}]
メタ タグに rails オブジェクトを含めるための 2 つのプラグインを確認することをお勧めします。
メタマジック: https://github.com/lassebunk/metamagic
ヘッドライナー: https://github.com/mokolabs/headliner
編集:メタタグgemの場合
私が通常行うことは、単純に myApplicationHelper
に貼り付けるメタ ヘルパーを作成することです。これは次のようになります。
def meta(field = nil, list = [])
field = field.to_s
@meta ||= {
'robots' => ['all'],
'copyright' => ['My Copyright'],
'content-language' => ['en'],
'title' => [],
'keywords' => []
}
if field.present?
@meta[field] ||= []
case list.class
when Array then
@meta[field] += list
when String then
@meta[field] += [list]
else
@meta[field] += [list]
end
case field
when 'description' then
content = truncate(strip_tags(h(@meta[field].join(', '))), :length => 255)
else
content = @meta[field].join(', ')
end
return raw(%(<meta #{att}="#{h(field)}" content="#{h(content)}"/>))
else
tags = ''
@meta.each do |field, list|
tags += meta(field)+"\n"
end
return tags.rstrip
end
end
への呼び出しを追加することで、ビューにメタ タグを簡単に設定できますmeta()
。したがって、articles/show.html.erb
これをビューの上部に追加できます。
<% meta(:title, @article.title) %>
レイアウトでは、パラメーターなしで追加するため、メタ タグが吐き出されます。
<%= meta %>
または、個別のタグを出力します。
<%= meta(:title) %>
ただし、もっとエレガントなソリューションがあるに違いありません。
しかし、Rails に既に実装されているものを探しているのであれば、運が悪いでしょう。
ありがとう。