The validation would go in the Instructorship model.

You'll need a custom method, like so: 
http://edgeguides.rubyonrails.org/active_record_validations.html#custom-methods 

-- 
Dheeraj Kumar


On Thursday 3 January 2013 at 8:43 PM, coriordan wrote:

> Hi,
> 
> I'm trying to figure out the correct "Rails" way to perform validation prior 
> to creating a new assocation between my models. Here's the models:
> 
> class User < ActiveRecord::Base
>   
>   has_and_belongs_to_many :roles
>   has_many :instructorships
>   has_many :instructed_courses, :through => :instructorships, :source => 
> :course
> 
> class Course < ActiveRecord::Base
>   
>   has_many :instructorships
>   has_many :instructors, :through => :instructorships, :source => :instructor
> 
> class Instructorship < ActiveRecord::Base
>   belongs_to :instructor, :class_name => 'User', :foreign_key => 'user_id'
>   belongs_to :course
> 
> I'm trying to introduce a validation whereby only user objects with a role of 
> 'instructor' can be assigned as an instructor on a course. 
> 
> Firstly, where would this validation go? On the association model? And 
> secondly, what is the right way to set this up?
> 
> thanks for your help,
> Cathal.
> -- 
> 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] 
> (mailto:[email protected]).
> To unsubscribe from this group, send email to 
> [email protected] 
> (mailto:[email protected]).
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/rubyonrails-talk/-/bUuvgClzISMJ.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  

-- 
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