如何在rails中向表中添加唯一列

时间:2013-03-09 14:41:15

标签: ruby-on-rails database unique

我有桌子。我已经进行了迁移并设置了add_column :articles, :hash_code, :string, :unique => true,它不起作用。

你能帮我一下吗?

2 个答案:

答案 0 :(得分:0)

根据guide

  

Active Record方式声称智能属于您的模型,而不属于数据库。因此,诸如触发器或外键约束之类的功能(将一些智能推回到数据库中)并没有被大量使用。

     

验证,例如validates:foreign_key,:uniqueness => true是模型可以强制执行数据完整性的一种方式。关联的:dependent选项允许模型在父元素被销毁时自动销毁子对象。

所以你需要做的就是验证模型中属性的唯一性,就是这样!如果你想添加索引,那么可以在迁移文件本身中添加。

答案 1 :(得分:0)

:unique => true属于add_index语句而不是add_column语句。

add_index语法如下所示:

add_index:table_name,:column_name,:unique =>真