2014-09-12 52 views
0

我想添加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 "#&lt;Point:0x000001082964f0&gt;":ActiveSupport::SafeBuffer 

所以,rails以@point作爲字符串,但不是作爲對象。

謝謝!

回答

0

yield :keywords返回String。試試這個:

<meta name="keywords" content="<%= yield(:keywords) %>"> 

<% provide(:keywords, meta_tags(@point)) %> 
相關問題