Rails灯具:has_many和:belongs_to

Kon*_*ght 5 ruby ruby-on-rails fixtures

如何在我的.yml中为has_many和belongs_to变量创建样本数据.

这是将这些文件添加到终端中的简单rails new lab命令的示例.我真的不知道如何用英语解释这个.但我希望我的代码能够显示足够的细节来解决问题.

man.rb

class Man < ActiveRecord::Base
  attr_accessible :name
  has_many :items
end
Run Code Online (Sandbox Code Playgroud)

item.rb的

class Item < ActiveRecord::Base
  attr_accessible :name
  belongs_to :man
end
Run Code Online (Sandbox Code Playgroud)

men.yml

one:
  name: ManOne
  #items: one, two

two:
  name: ManTwo
  #items: one, two
Run Code Online (Sandbox Code Playgroud)

items.yml

one:
  name: ItemOne

two:
  name: ItemTwo
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

Ser*_* A. 10

看看灯具文档,你可以做一些像:

men.yml

man_one:
  name: ManOne

man_two:
  name: ManTwo
Run Code Online (Sandbox Code Playgroud)

items.yml

item_one:
  name: ItemOne
  man: man_one

item_two:
  name: ItemTwo
  man: man_one

item_three:
  name: ItemThree
  man: man_two
Run Code Online (Sandbox Code Playgroud)

更新

看来你man_id表中没有column.您应该创建一个迁移来执行此操作:

rails g migration AddManIdToItem man_id:integer
Run Code Online (Sandbox Code Playgroud)

并运行迁移: bundle exec rake db:migrate