1

私はacts_as_taggable_ongemとrailsjqueryautocompletegemを使用しています

宝石を介してタグ数を取得する方法を知っています

オートコンプリートの検索結果を返す以外の何かを表示するには、次のようなことをする必要があることを知っています

autocomplete :tag, :name, :class_name => 'ActsAsTaggableOn::Tag', :full => true

さらに2つのキーを追加します。

:extra_data , :display_value

追加のデータは、検索でより多くのデータを取得します(ここで必要かどうかはわかりません)。display_valueは、オートコンプリートで検索されるモデル内からメソッドを呼び出します。

問題:

display_valueのメソッドをどこに置くべきかわかりません。

def tags_with_counts
 "#{tag.name} x #{tag.count}
end

私はそれを入れるためのタグモデルファイルを持っていないので(acts_as_taggable_onはそのようなファイルを生成しないので)。

しかし、そのようなファイルがあったとしても、以前の実験から、そのメソッドはオートコンプリート検索で取得されたデータのみを使用でき、タグ数の列はありません。

これを解決するにはどうすればよいですか?

4

2 に答える 2

1

することによってそれを解決しました

class Tag < ActsAsTaggableOn::Tag


  def tagcount
       num = ActsAsTaggableOn::Tagging.where(:tag_id => self.id).count
       "#{Tag.find(self.id).name} x #{num}"
  end


end

「Tag」クラスをrails-autocomplete呼び出しに送信します

于 2012-11-03T05:58:25.747 に答える
0

モデルの1つにディレクティブを含めると、acts_as_taggable基本的に、acts-as-taggable-onモジュールに属する一連のメソッドと関係にディレクティブを開くことになります。そうは言っても、acts-as-taggable-onモジュールのスコープ内にあるメソッドを追加したい場合は、同じモデルでそれを定義するだけです。

例えば:

class Upload < ActiveRecord::Base

  acts_as_taggable

  def tags_with_counts
   "#{tag.name} x #{tag.count}"
  end

end

参考までに、tags_with_countsメソッドに閉じの二重引用符がありませんでした。

于 2012-11-02T18:41:54.153 に答える