How do I validate that a model object’s attribute is a valid foreign
key? The problem is, I can’t check if the attribute is a valid foreign
key if the attribute doesn’t even exist.
For example, every employee must be in a department. In the following
code, if an employee’s department_id is not present then
Department.find_by_id(department_id) might cause problems, yes?
class Employee < ActiveRecord::Base
validates_presence_of :department_id
def validate
errors.add(:department_id) unless
Department.find_by_id(department_id)
end
end
department_id should be present, a positive integer, and a valid
foreign key to the departments table. This is a common thing to want
to validate. How do you do it?
Thanks,
Peter