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.
on 2013-01-03 16:15
on 2013-01-03 19:58
The validation would go in the Instructorship model. You'll need a custom method, like so: http://edgeguides.rubyonrails.org/active_record_va... -- Dheeraj Kumar
on 2013-01-04 10:21
Thanks Dheeraj :)