基于http://guides.rubyonrails.org/v3.2.21/migrations.html和 鉴于以下迁移:
class CreateVacations < ActiveRecord::Migration
def change
create_table :vacations do |t|
t.string :name
t.string :slug, :uniqueness => true
t.datetime :starts_at
t.datetime :ends_at
t.timestamps
end
end
end
我运行rake db:migrate并查看此架构:
ActiveRecord::Schema.define(:version => 20150825170615) do
create_table "vacations", :force => true do |t|
t.string "name"
t.string "slug"
t.datetime "starts_at"
t.datetime "ends_at"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
end
我不认为'slug'有任何独特性要求。如果我做错了,我怎么能在这一点上解决它?
如果它是正确的,为什么架构不能说它是独一无二的?谢谢
答案 0 :(得分:3)
您需要创建索引才能在数据库级别强制实施唯一性:
add_index :vacations, :slug, unique: true