我想将meta关键字添加到网站的<head>
。
在application.rb
我有:
<meta name="keywords" content="<%= meta_tags(yield(:keywords)) %>">
在我的Point
模型中,我有7个案例(俄语):主格,属格,配音,指控,消融,介词。所有这些都是字符串,我想在meta关键字中使用它们。所以,我需要provide
不是字符串,而是需要使用它的模型:
def meta_tags(point)
if point.empty?
'keyword, keyword, ... , keyword'
else
"keyword #{point.nominative}, keyword #{point.genitive}, ..."
end
end
在points/show.html.erb
我有:
<% provide(:keywords, @point) %>
但我收到错误:
undefined method `nominative' for "#<Point:0x000001082964f0>":ActiveSupport::SafeBuffer
因此,rails将@point
作为字符串,但不作为对象。
谢谢!
答案 0 :(得分:0)
yield :keywords
正在返回String
。试试这个:
<meta name="keywords" content="<%= yield(:keywords) %>">
和这个
<% provide(:keywords, meta_tags(@point)) %>