У меня есть следующая структура моего приложения API:Как мне разрешить пользователю отправлять электронную почту между приложениями, но не внутри одного приложения?
class App < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
belongs_to :app
end
Как разрешить пользователю иметь один и тот же уникальный по электронной почте между приложениями, но не внутри одного приложения? Если я пишу:
class User < ActiveRecord::Base
belongs_to :app
validates :email, uniquiness: true
end
Это подтверждает уникальность электронной почты во всем мире среди всех пользователей, но я хочу, чтобы подтвердить только среди пользователей конкретной модели приложения, которые пользователь принадлежит.
Другими словами, я хочу, чтобы пользователь мог подписать с той же электронной почты для приложения с идентификатором 1 и приложение с идентификатором 2.
Или используйте 'validates_uniqueness_of: адрес электронной почты, объем:: app' и читать [ActiveRecord :: Validations :: Docs методы класса] (HTTP: // апи. rubyonrails.org/classes/ActiveRecord/V alidations/ClassMethods.html # method-i-validates_uniqueness_of) –
Также может быть полезно добавить индекс, такой как 'add_index (: users, [: email,: app_id]), unique: true'. –
@NicNilov Я уверен, что 'validates' является предпочтительным методом проверки. 'validates_uniqueness_of' - это старый способ сделать это. То же самое относится к 'validates_length_of',' validates_presence_of' и т. Д. –