In a Rails unit test, how can I get a User fixture to load its associated Profile?

Posted by MikeJ on Stack Overflow See other posts from Stack Overflow or by MikeJ
Published on 2010-03-25T19:42:37Z Indexed on 2010/03/26 0:53 UTC
Read the original article Hit count: 568

In the documentation concerning Fixtures (http://api.rubyonrails.org/classes/Fixtures.html) they provide the following example of using label references for associations:

### in pirates.yml
reginald:
  name: Reginald the Pirate
  monkey: george

### in monkeys.yml
george:
  name: George the Monkey
  pirate: reginald

So following their lead, I have a User model that has_one :profile, a Profile model that belongs_to :user, and tried to set up fixtures per their example:

### in users.yml
reginald:
  id: 1
  login: reginald

### in profiles.yml
reginalds_profile:
  id: 1
  name: Reginald the Pirate
  user: reginald

(Note: since my association is one-way, the User fixture doesn't have a "profile: reginalds_profile" association--putting it in causes an error because the SQL table has no profile_id attribute.)

The problem is, in my unit tests everything seems to load correctly, but users(:reginald).profile is always nil. What am I missing?

© Stack Overflow or respective owner

Related posts about ruby-on-rails

Related posts about unit-testing