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.

