我有我的API应用程序的下一个结构:
class App < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
belongs_to :app
end
如何让用户拥有相同的唯一电子邮件BETWEEN应用,但不能在一个应用内?如果我写:
class User < ActiveRecord::Base
belongs_to :app
validates :email, uniquiness: true
end
它验证所有用户之间全局电子邮件的唯一性,但我希望它仅在用户所属的特定App模型的用户之间进行验证。
换句话说,我希望用户能够使用相同的电子邮件注册ID为1的应用和ID为2的应用。
答案 0 :(得分:2)
使用范围来约束此验证:
validates :email, uniquness: { scope: :app }
有关validates
以及uniquness
选项的更多信息,请参阅Rails Validation Documentation