如何允许用户在应用之间发送电子邮件,但不允许在一个应用内部发送电子邮件?

时间:2016-06-27 16:33:43

标签: ruby-on-rails validation activerecord activemodel

我有我的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的应用。

1 个答案:

答案 0 :(得分:2)

使用范围来约束此验证:

validates :email, uniquness: { scope: :app }

有关validates以及uniquness选项的更多信息,请参阅Rails Validation Documentation