0

キーワードとストレート テキストに Rails オブジェクトを含めたいのですが、コードは明らかに正しい方法ではありません...どうすればよいですか?

set_meta_tags :keywords => %w[keyword1 keyword2 #{params[:hospital]}]
4

2 に答える 2

0

メタ タグに 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 に既に実装されているものを探しているのであれば、運が悪いでしょう。

ありがとう。

于 2013-05-21T13:44:08.803 に答える