Thanks for the reply Jason (I almost wrote Json :), I really appreciate it.
On Wednesday, October 8, 2014 9:37:49 AM UTC-4, Jason FB wrote: > > > validates :user, presence: true, uniqueness: true > > Much easier than what you are trying to do. > > Note that this will work in 99.999% of the time, 0.001% of the time you > will get duplicate records in your database because of race conditions > > Alternatively, if your user really is going to have only 1 address, then > why isn't the address_id field inside of the User model? (You would then > have your User belong_to :address). Seems like a more appropriate model for > what you are trying to do. > > > -Jason > > > > On Oct 8, 2014, at 9:20 AM, GeorgeFromTheBank <[email protected] > <javascript:>> 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 [email protected] <javascript:>. > To post to this group, send email to [email protected] > <javascript:>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/rubyonrails-talk/f9593b29-3a3a-44e2-976c-3016c9d4fbea%40googlegroups.com > > <https://groups.google.com/d/msgid/rubyonrails-talk/f9593b29-3a3a-44e2-976c-3016c9d4fbea%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > > > ---- > > Jason Fleetwood-Boldt > [email protected] <javascript:> > http://www.jasonfleetwoodboldt.com/writing > > All material © Jason Fleetwood-Boldt 2014. Public conversations may be > turned into blog posts (original poster information will be made > anonymous). Email [email protected] <javascript:> with > questions/concerns about this. > > -- 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 [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/f4d58902-2e0c-49c9-8b9b-a8559af83fbd%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

