将索引添加到模型的行

时间:2014-05-02 12:00:05

标签: ruby-on-rails

我使用了rails_best_practises gem,它通过这个警告回复给我:

/../db/schema.rb:65 - always add db index (comments => [user_id])

因此在db / schema.rb中,第65行显示了注释表的模式。

 create_table "comments", force: true do |t|
    t.string   "commenter"
    t.text     "body"
    t.integer  "post_id"
    t.string   "email"
    t.integer  "user_id"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

那么它要求的是添加一个索引(某物),如下所示?

add_index "comments", ["user_id"], name: "index_comments_on_user_id", using: :btree

如果是这样,当我创建一个新的rails迁移来完成此操作时,迁移是否会像那样?

def change
  add_index :comments, :user_id
end

1 个答案:

答案 0 :(得分:2)

来自 Guides

  

如果您想在新列上添加索引,可以这样做   井

因此,您应该这样做以生成添加索引的迁移文件。

rails generate migration AddIndexToComments user_id:integer:index

这将产生这样的迁移文件

class AddIndexToComments < ActiveRecord::Migration
  def change
    add_index :comments, :user_id
  end
end