1

我正在使用acts_as_taggable_on gem 和 rails jquery autocomplete gem

我知道如何通过 gem 获取标签计数

我知道,为了显示除了自动完成的返回搜索结果之外的其他内容,我需要做这样的事情

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

并将“标签”类发送到 rails-autocomplete 调用

于 2012-11-03T05:58:25.747 回答
0

假设您acts_as_taggable在其中一个模型中包含该指令,您实际上是在将其开放给属于作为可标记的模块的一系列方法和关系。话虽如此,如果您想添加一个在您的 act-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 回答