I have the following scenario:
class User; has_and_belongs_to_many :roles; end
class Role; has_and_belongs_to_many :users; end
#roles schema only has name (string) as attribute
an additional table 'roles_users' with user_id (integer) and role_id
(integer) was necessary.
Then I created a fixture in users.yml:
admin:
roles: admin, guest
and in roles.yml:
guest:
name: guest
admin:
name: admin
This should work as mentioned in the docs:
http://api.rubyonrails.org/classes/Fixtures.html
But the following line did not pass:
assert_not_nil users(:admin).roles.find_by_name('admin')
Because users(:admin).roles is empty!
For the problem I crawled a lot of docs but I cannot see where I made
a mistake.
Could someone lead me in the right direction?
even after cleaning up the roles_users (without timestamp) it does not
work (Hint from [1])
Tried out different order of fixture importing -> nothing helps.
So, I switched to the old way to define fixtures [2] and it works
Thanks for the answer Rob!
The intention was to avoid the the explicit definition of a join table
in the fixtures,
like it is possible since some months. See 'Let‘s make the HABTM
fixture go away. ' in
http://api.rubyonrails.org/classes/Fixtures.html
For your approach: I will put the omap into a roles_users.yml file,
right?
Thanks for the answer Rob!
The intention was to avoid the the explicit definition of a join table
in the fixtures,
like it is possible since some months. See 'Let‘s make the HABTM
fixture go away. ' in
http://api.rubyonrails.org/classes/Fixtures.html
Hadn't seen that. (But I haven't used a HABTM association in a while
either.)
For your approach: I will put the omap into a roles_users.yml file,
right?
Regards,
Peter.
Yes, that's right. I noticed that the "YAML Fixtures" section of that
page you referenced describes the omap type also.