--- layout: post title: Same class associations in Rails 3 tags: development type: post published: true --- **[TL;DR]** Even though the selected events conceptually belong to a record, the latter has the foreign keys to former. So technically, `has_one` is to be changed to `belongs_to`. * * * This is the first time I've ran into something like this and it was interesting to realize what it actually means when developing a business logic in Rails. ### Context In this app I'm building, I have Students that have a Record per year. Each record has several Events. These records also have two specific events: a test and an audition, registered in the schema as `id`'s in the record's table. ### So what did technically happen? I wasn't able to access those specific events through the associations specified in the model. Given r = Record.first, when I tried to access the audition, by using r.test, Rails would use a SQL query that would correspond to r.events.first instead. After acknowledging that, I turned to @varandas and we both thought it might be a bug in the Rails framework. Turns out it wasn't; all I had to do was switch from has\_one to belongs\_to (thanks @drogus!). The reason for that is the foreign key is on the records table. From the framework's perspective, it looks like the record actually belongs to the event, when in practice it's not. ### Code sample