validates :user, uniqueness: true is simple way(When you specify association then it also check other model validation) also other way is add custom validation for check uniquness
On Wednesday, October 8, 2014 6:50:25 PM UTC+5:30, GeorgeFromTheBank wrote: > > Hello, > > I want to restrict my users having more than one address. > > Here are the definitions from my classes : > > class User < ActiveRecord::Base > has_one :address, dependent: :destroyendclass Address < ActiveRecord::Base > belongs_to :user > validates :user, presence: true > validate :user_association > > def user_association > unless Address.where(user_id: user.id).count == 0 > errors.add(:user_id, 'Only one address per user') > end > endend > > > I'm creating my address from user model, like this : > > def create_address_relation > a = Address.create(address_type: @type.to_s, user_id: id) > self.address = aend > > > However when I'm able to create two address objects for same user. (I'm > using paranoia gem for soft deleting objects, not sure if that is relevant) > > Any suggestion how to make validations work? except unique index on the db > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/49cb943d-0557-4e35-8704-c9245ff7fe43%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.