Ruby on rails 3 不清楚何时使用特定FactoryGirl语法

Ruby on rails 3 不清楚何时使用特定FactoryGirl语法,ruby-on-rails-3,factory-bot,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

在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
FactoryGirl.define do
工厂:文章做什么
在按照创建{| a | a.comments之后,如果您想在调用create和build等方法时省略FactoryGirl模块前缀,则需要在rspec/测试单元模块中混合FactoryGirl方法,如下所示:

# rspec
RSpec.configure do |config|
  config.include FactoryGirl::Syntax::Methods
end

我了解到,从当前版本(3.2.0)起,回调(如创建后)中不支持缩写符号。此信息直接来自FactoryGirl团队,通过谷歌群组。如果在未来版本中添加此问题,我将更新此问题。

感谢Salil的回复。是的,我已经这样做了,这允许我仅在上述情况下使用
create
。你是一个该死的救命老兄。我只是打算用l语法错误。比起几个小时的无厘头的调试,我更喜欢额外的按键。我一年前问过这个问题,从那以后一直在使用长格式。是的,我同意,少了一些挠头。