acts_as_taggable_on和rails autocomplete gem - 显示标记计数

时间:2012-11-02 16:52:12

标签: ruby-on-rails ruby-on-rails-3 jquery-autocomplete acts-as-taggable-on

我正在使用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不会生成这样的文件。

但即使我确实有这样的文件,从以前的实验中,该方法只能使用通过自动完成搜索检索的数据,而且我没有带标记计数的列。

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分: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 call

答案 1 :(得分:0)

假设您在其中一个模型中包含acts_as_taggable指令,您实际上将其打开为属于act-as-taggable-on模块的一系列方法和关系。如果您想要添加一个在act-as-taggable-on模块范围内的方法,那么您只需在同一模型中定义它。

例如:

class Upload < ActiveRecord::Base

  acts_as_taggable

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

end

FYI您的tags_with_counts方法缺少结束双引号。