不清楚何时使用特定的FactoryGirl语法

IAm*_*NaN 6 ruby-on-rails-3 factory-bot

在FactoryGirl的最新版本中,一些句法方法如有Factory.create利于其他几种语法折旧,最显着FactoryGirl.create且更简单create.

但是,经验表明,鉴于上下文,某些语法并不总是合适的.

举个例子:

FactoryGirl.define do

  factory :article do
    after_create {|a| a.comments << create(:comment) }
  end

  factory :comment do
  end

end
Run Code Online (Sandbox Code Playgroud)

文章has_many评论,评论属于文章.在上面的工厂中,a.comments << create(:comment)发出错误Comment(#nnn) expected, got FactoryGirl::Declaration::Static.将该行更改为a.comments << FactoryGirl.create(:comment),错误消失.

目前尚不清楚何时一种语法优先于任何其他形式.

IAm*_*NaN 5

我从当前版本(3.2.0)开始学习回调(例如after_create)时不支持缩写表示法.这些信息直接来自FactoryGirl团队的Google团队.如果/它是在未来版本中添加的,我会更新此问题.