Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 需要计算标签ID_Ruby On Rails - Fatal编程技术网

Ruby on rails 需要计算标签ID

Ruby on rails 需要计算标签ID,ruby-on-rails,Ruby On Rails,我需要读取标签id在listings\u tags db表中显示的次数。 标签通过列表表单输入系统。 我有一个只列出标签的页面 当前 tag1() tag2() tag3() tag4() 渴望的 tag1(40) tag2(22) tag3(5) tag4(4) 可能相关的代码 模式 create_table "listings_tags", :id => false, :force => true do |t| t.integer "listing_id"

我需要读取标签id在listings\u tags db表中显示的次数。 标签通过列表表单输入系统。 我有一个只列出标签的页面

当前

tag1()
tag2()
tag3()
tag4()
渴望的

tag1(40)
tag2(22)
tag3(5)
tag4(4)
可能相关的代码

模式

  create_table "listings_tags", :id => false, :force => true do |t|
    t.integer "listing_id"
    t.integer "tag_id"
  end

  create_table "tags", :force => true do |t|
    t.string   "name"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

class Tag < ActiveRecord::Base
  has_and_belongs_to_many :listings
  validates_uniqueness_of :name

class Listing < ActiveRecord::Base
  belongs_to :profile
  has_and_belongs_to_many :tags
create_table“listings_tags”,:id=>false,:force=>true do | t|
t、 整数“列表\u id”
t、 整数“tag_id”
结束
创建表格“标记”:force=>true do | t|
t、 字符串“name”
t、 日期时间“创建时间”
t、 日期时间“更新时间”
结束
类标记
首先,不鼓励使用has\u和\u-own\u-to\u-many-Association。 最好使用联接模型:

class Tag < ActiveRecord::Base
  has_many :listings, :through => :listing_tagging
end

class Listing < ActiveRecord::Base
  has_many :tags, :through => :listing_tagging
end

class ListingTagging < ActiveRecord::Base
  belongs_to :tag
  belongs_to :listing
end
ListingTagging.select("tag_id, COUNT(tag_id) as tagging_count")
              .group(:tag_id)
              .order("tagging_count DESC")
              .limit(10)
              .map { |t| [t.id, t.tagging_count] }
# => [[tag_id1, tagging_count_1], ... ]