1

我使用的acts_as_taggable_on创业板和轨道的jQuery自动完成宝石acts_as_taggable_on和导轨自动完成宝石 - 显示标签计数

我知道如何通过创业板获得的标签计数

我知道的是,为了显示别的东西比自动完成返回搜索结果我需要做这样的事情

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

并添加2个密钥,其

其他
:extra_data , :display_value 

额外的数据将检索更多的数据在搜索中(不确定这是否需要在这里) display_value将调用从自动完成搜索模型内的方法。

问题:

我不知道放在哪里方法应该是这样的

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

的DISPLAY_VALUE由于我没有标签模型文件放它在(因为acts_as_taggable_on不生成这样的文件

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

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

回答

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 

和发送“变量”类导轨,自动完成呼叫

0

假设您在其中一个模型中包含acts_as_taggable指令,您基本上可以打开一系列属于行为作为标记的模块的方法和关系。有了这个说法,如果你想添加一个方法在你的行为作为标签模块的范围内,那么你可以简单地在同一个模型中定义它。

例如:

class Upload < ActiveRecord::Base 

    acts_as_taggable 

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

end 

FYI您tags_with_counts方法缺少一个右双引号。

+0

这不起作用,因为轨,自动完成需要它是一种方法,在返回模型中(这是标签)。如何插入该方法以成为模型的一部分? –

相关问题