2011-10-27 7 views
0

acts_as_taggable_onを使用すると効果的です。しかしカンマ区切りのリストを生成します。ラッパー要素とクラスをそれぞれ個別に追加する最善の方法を知っています。私はjQueryでそれを行うことができましたが、私はむしろレールヘルパーでやります。acts_as_taggable_onを使ってRailsの個々のタグにCSSクラスを追加

ie。 。

<span class="tag">big</span> 
<span class="tag">bigger</span> 
<span class="tag">biggest</span> 

答えて

2

はここに送られたtag_listに基づいてスパンのリストを生成することができますヘルパーです

def tags(tag_list) 
    markup = "" 
    tag_list.each do |tag| 
    markup += content_tag(:span, tag, :class => "tag") 
    end 
    raw(markup) 
end 

あなたは、その後でそれを呼び出します:

としてレンダリングする

item.tags = "big, bigger, biggest" 
item.tag_list = ["big", "bigger", "biggest"] 

<%= tags(item.tag_list) %> 

outp UT

<span class="tag">tag 1</span> 
<span class="tag">tag 2</span> 
<span class="tag">tag 3</span> 
+0

更新されたコード、私は大好き – nheinrich

+0

機能するようになりましたこの。魅力のように働く。あなたには本当にありがとうございます... – Adam

+0

よろしくお願いします! – nheinrich

1

これは新しい関数を作成し、ビューでコードを維持することなく、それを行うためのクリーンな方法かもしれない:テスト後に動作しませんでした、

<% @item.tag_counts_on(:tags).map(&:name).each do |tag| %> 
    <a href="/search/<%= tag %>"> 
    <span class="tag"><%= tag %></span> 
    </a> 
<% end %> 
+0

+1クリーナーアプローチ – lucapette

関連する問題