如何在factory_girl的define中定义has_many( & :through) association

阅读更多
刚才google到一篇介绍在factory_girl的define中定义has_many关联的方法,无奈网页链接打不开(被墙了还是怎么的),只好用网页快照看了。

方法一如下:

Factory.define :user do |user|
  user.name "My Name"
  user.groups {|groups| [groups.association(:group)]}
end

他强调的是那对中括号。

然后有人回帖,介绍了一个hacker级别的方法:

Factory.define :child do |f|

  class << f
    #do whatever you can do in a normal class definition
    def default_parent
      @default_parent ||= Factory(:parent)
    end
  end

  f.sequence(:name) {|n| "Child#{n}"}
  f.parent_id { f.default_parent.id }
end

后一种方法就能适用于很多情况了

最后强调一下:测试很重要,千万不能掉!

你可能感兴趣的:(Ruby,F#,Google)