Factory Girl says ArgumentError: wrong number of arguments (1 for 2..3)

Factory Girl says ArgumentError: wrong number of arguments (1 for 2..3)

我有一个 factories.rb 文件,其中包含

factory :link do
  employer
  sequence(:link) {|n| "testlink#{n}" }
  name  "Test Link"
  channel_cost 200
end

factory :matching do
  candidate
  job
  link              # ArgumentError: wrong number of arguments (1 for 2..3)

  after(:create) { |matching|
    job = matching.job
    job.employer = matching.employer
    job.save(validate: false)
  }
end

employer、candidate 和 job 都在显示的工厂上方定义。我在 'link' 收到一个错误,这对我来说意义不大。

此外,当我注释掉那一行 (link) 时,它起作用了。

它需要什么参数,我该如何添加它们?

:link工厂定义中,

sequence(:link) { |n| "testlink#{n}" }

定义了一个名为:link.

的序列

:matching 工厂定义中,factory_girl 似乎不是将 link 解释为与 Link 的关联,而是作为属性 link您要用名为 :link 的序列中的下一个值填充它。 (记录here。)

重命名序列应该可以解决问题。