【问题标题】:acts_as_taggable_on and rails autocomplete gem - displaying tag countsact_as_taggable_on 和 rails 自动完成 gem - 显示标签计数
【发布时间】:2012-11-02 16:52:12
【问题描述】:

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

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

我知道,为了显示除了自动完成的返回搜索结果之外的其他内容,我需要执行类似的操作

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

并添加另外两个键

:extra_data , :display_value

额外的数据将在搜索中检索更多的数据(不确定此处是否需要) display_value 将从模型中调用一个使用自动完成功能进行搜索的方法。

问题:

我不知道应该把 display_value 的方法放在哪里

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

因为我没有标签模型文件可以放入(因为acts_as_taggable_on 不会生成这样的文件。

但即使我确实有这样的文件,从之前的实验中,该方法也只能使用通过自动完成搜索检索到的数据,并且我没有包含标签计数的列。

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

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 jquery-autocomplete 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
    

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

    【讨论】:

      【解决方案2】:

      假设您在其中一个模型中包含acts_as_taggable 指令,您实际上是在将其开放给属于acts-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
      

      仅供参考,您的 tags_with_counts 方法缺少双引号。

      【讨论】:

      • 这不起作用,因为 rails-autocomplete 需要它成为返回模型(即标签)中的方法。如何将该方法插入模型中?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-03
      • 1970-01-01
      • 2012-09-05
      • 2017-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多