re: How would you setup a model in Rails to reference the same model type? VIEW POST

re: # in migration def change add_reference :chapters, :previous_chapter, foreign_key: { to_table: :chapters...

Thanks Brian for the reply!

has_one :next_chapter, class_name: ‘Chapter’, foreign_key: :previous_chapter_id

Why is the foreign_key the previous_chapter_id and not something like next_chapter_id?


Because that’s a reference to the database column in your migration. That line basically says, “When the :next_chapter method is called, return the chapter that lists this one as its :previous_chapter.”

You could set up the migration to store the next chapter instead of the previous one. It’s the same process. I just thought it makes more sense this way because when you create a chapter, the previous one probably exists already, whereas the next one might not.

Ahhh clever, thanks Brian for the help. I implemented this method and it worked as you described it :)

code of conduct - report abuse