我想在我的关键字和直接文本中包含rails对象,但代码显然不是正确的方法...我该怎么做?
set_meta_tags :keywords => %w[keyword1 keyword2 #{params[:hospital]}]
答案 0 :(得分:0)
您可能希望查看两个插件,以便在meta标记中包含rails对象:
Meta Magic:https://github.com/lassebunk/metamagic
Head Liner:https://github.com/mokolabs/headliner
编辑:对于Meta标记gem
我通常做的是写一个元助手,我只是简单地粘在我的ApplicationHelper
中,看起来像这样:
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中实现的东西,那你就不走运了。
感谢。
答案 1 :(得分:0)
在你的视图中尝试这个,因为它对我有用(使用meta-tags gem):
<% keywords [[@modelname.keyword1], [@modelname.keyword2]] %>
并通过以下格式{\ {1}}
在ruby中添加其他关键字以文本格式