On Thu, Nov 22, 2012 at 5:53 PM, ariv arasan <[email protected]> wrote:

> i have a user model with fields name and sex. And each user can have an
> one-to-one association called "father" with a male user.
>
> So in user model i added a field father_id and added association like
> this,
>
> class User < ActiveRecord::Base
>   belongs_to :father, :class_name => 'User', :inverse_of => :user,
> :foreign_key => "father_id"
>   has_one :user, :class_name => 'User', :inverse_of => :father
>
>   SEX=["male", "female"]
>
>   validates :sex, :presence => true,:inclusion => { :in => SEX }
>
> end
>

hmm i think you just need to define a custom validation

validates :validates_father_is_a_male

private

def validates_father_is_a_male
  errors.add(:father_id, 'is not a male') if father && father.sex == 'male'
end


>
> now it can make both female user and male user as father. How could i
> restrict it to make user as father only whose sex is male?
>
> --
> Posted via http://www.ruby-forum.com/.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>


-- 
-------------------------------------------------------------
visit my blog at http://jimlabs.heroku.com

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to