Limiting model validation to only records associated with the current_user in Rails 3.2 -
i have invitations scheme allows users nominate others bring together beta. need validate email address user sending invitation , ensure email address unique, within scope of current_user
's list of invitations.
in other words, model should allow same email address exist within invitation system, not allow duplicates within scope of current_user
's list of invites.
my usermodel
has:
has_many :invitations validates_uniqueness_of :email
and invitationmodel
has:
belongs_to :user
i can't set validates_uniqueness_of :email
within invitationmodel
since need allow multiple instances of given email address within database, ensure each instance has unique sender (user).
any ideas on how limit validation scope of current_user
?
it sounds need scope on validation. allow same email address used multiple times, 1 time per user.
validates_uniqueness_of :email, scope: :user_id
also, since email addresses case-insensitive, recommend adding insensitivity scope.
validates_uniqueness_of :email, scope: :user_id, case_sensitive: false
cite: http://apidock.com/rails/activerecord/validations/classmethods/validates_uniqueness_of
ruby-on-rails-3 validation rails-activerecord
No comments:
Post a Comment