下面我有一个migrate,在那里我创建了一个索引:true。但是,这个名称对于那个索引来说太长了,所以我尝试自己命名它。然而,这似乎并不奏效。我得到了相同的"名称太长"错误。有没有一种方法可以用index来命名这样的索引:true?如果没有,我该如何使用add_index命名它?
class CreateVehicleProductApplicationNotes < ActiveRecord::Migration
def change
create_table :vehicle_product_application_notes do |t|
t.references :product_id, index: true
t.references :product_application_id, index: true, :name "my_index"
t.references :note_id, index: true
t.timestamps
end
end
end
您可以按如下方式传递包含索引名称的Hash,而不是true
t.references :product_application_id, index: { name: "my_index" }
参考:http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/TableDefinition.html