acts_as_taggable_onでRailsの個々のタグにCSSクラスを追加する

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

すなわち、

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

次のようにレンダリングする:

big
bigger
biggest
0

2 答え

ここには、送信されたtag_listに基づいてスパンのリストを生成できるヘルパーがあります。

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

あなたはそれからそれを呼び出すでしょう:

<%= tags(item.tag_list) %>

出力する

tag 1
tag 2
tag 3
2
追加された
更新されたコードは、今すぐテストした後に動作しませんでした
追加された 著者 nheinrich,
どういたしまして!
追加された 著者 nheinrich,
これ大好き。魅力のように働く。あなたには本当にありがとうございます...
追加された 著者 Adam,

これは、新しい関数を作成せずにコードをビューに保持することなく、よりクリーンな方法です。

<% @item.tag_counts_on(:tags).map(&:name).each do |tag| %>
   
    <%= tag %> 
<% end %>
1
追加された
+1クリーナーアプローチ
追加された 著者 lucapette,