使用has_many创建表分类:through用于类别和帖子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用has_many创建表分类:through用于类别和帖子相关的知识,希望对你有一定的参考价值。

嘿伙计们,我正在做一个has_many:通过在轨道上的ruby中的关联。如果我的例子没问题,我想要一些帮助。所以我假装为帖子做类别。假设我已经建立了课程帖子。因此,为了创建类别的数据库,我假装这样做:

class CreateCategories < ActiveRecord::Migration[5.0]
  def change
    create_table :categories do |t|
      t.string :name
      t.timestamps
    end
  end

  def change
    create_table :categorizations do |t|
      t.belongs_to :post, index: true
      t.belongs_to :category, index: true
      t.integer :position

      t.timestamps
    end

    add_index :categorizations, [:product_id, :category_id], unique: true
  end
end

这些索引可以提升数据库吗?

答案

是的,您在底部定义的多列索引:

add_index :categorizations, [:product_id, :category_id], unique: true

已验证。但是,与在product_idcategory_id上单独定义的单列索引相比,它也是不必要的,并且可能性能较差。

以上是关于使用has_many创建表分类:through用于类别和帖子的主要内容,如果未能解决你的问题,请参考以下文章

使用 `:has_many :through` 记录关联处理复选框表单

如何使用 :through 选项声明 has_many 关联的特定键?

如何避免 has_many :through 关系中的重复?

如何实现 has_many :through 关联两种方式?

使用“has_many :through”进行验证

何时在 Rails 中使用“has_many :through”关系?