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.

Reply via email to