Ask A Question


You’re not receiving notifications from this thread.

How do I handle the validation of associated objects?

jwjwy asked in Rails

I have a blog applications, in which user has_many blogs, blog has_many notes written by the user. And we have a note_relations(mapped to NoteRelation) table to keep the relation of two notes, if they are connected. And our validation function requires the note_from and note_to has the same blog_id

class NoteRelation < ActiveRecord::Base 
has_one note_from,  :class_name => 'Note'
has_one note_to,  :class_name => 'Note'
def validate_note_relation
   unless note_from.blog_id == note_to.blog_id
     errors.add :note_to_id, :not_same_blog

Also, we allow a user to change the blog_id of a note. In this case, if we change one of the note_from's blog_id without changing the note_to's blog_id, then the issue_relation data would be invalid.

How should we handle the validation so that no data will be invalid? Or how can we define the right behavior.

Join the discussion
Create an account Log in

Want to stay up-to-date with Ruby on Rails?

Join 82,329+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.