所以我创建了一个名为User的模型,并且需要使用电子邮件,但我希望在我可能部署我的应用程序之前使其独一无二。我对rails非常陌生,但我已经四处寻找这个场景,我只找到了允许你添加新列并将它们指定为唯一的东西。
感谢任何帮助。我不确定我是应该从rails控制台还是添加
validates_uniqueness_of :email
到我的模型或究竟是什么。
我已经尝试过并运行了rake db:migrate并且没有发生任何事情。
提前致谢!
Python Guy:P
答案 0 :(得分:1)
正如您所说,您可以使字段唯一添加uniqueness validation 您无需运行迁移。 (我假设您运行了迁移,以便之前使用电子邮件字段创建用户模型/表格)
您需要在模型上添加此内容
class User < ActiveRecord::Base
validates :email, uniqueness: true # :email makes reference to the user's email attribute
end
测试一下。打开你的控制台。 (终端上的 rails c ) 然后你可以创建一个用户:
User.create! email: "some@mail.com"
然后,第二次这样做:
User.create! email: "some@mail.com"
您将看到验证错误
ActiveRecord::RecordInvalid: Validation failed: Email has already been taken
如果您执行创建而不是创建!,您将看不到异常。小心那个