Reputation: 1264
How do I create sample data in my .yml for has_many and belongs_to variables.
This is a sample adding these files into a simple rails new lab command in the terminal. I don't really know how to explain this in english. But I hope my code shows enough detail to get the point across.
man.rb
class Man < ActiveRecord::Base
attr_accessible :name
has_many :items
end
item.rb
class Item < ActiveRecord::Base
attr_accessible :name
belongs_to :man
end
men.yml
one:
name: ManOne
#items: one, two
two:
name: ManTwo
#items: one, two
items.yml
one:
name: ItemOne
two:
name: ItemTwo
man_test.rb
require 'test_helper'
class ManTest < ActiveSupport::TestCase
def test_man
Man.all.each do |man|
puts man.name.to_s + ": " + man.items.to_s
end
assert true
end
end
Upvotes: 10
Views: 8909
Reputation: 3754
Have a look to fixtures docs, you can do something like:
men.yml
man_one:
name: ManOne
man_two:
name: ManTwo
items.yml
item_one:
name: ItemOne
man: man_one
item_two:
name: ItemTwo
man: man_one
item_three:
name: ItemThree
man: man_two
Update
It seems you don't have the man_id
in the table column
. You should create a migration to do so:
rails g migration AddManIdToItem man_id:integer
and run the migration: bundle exec rake db:migrate
Upvotes: 16
Reputation: 4496
I believe you are asking about fixtures. You do it like this:
#men.yml
first_man:
name: 'One'
#items.yml
first_item:
name: 'First item'
man: first_man
Upvotes: 0