0

我正在 Sinatra 中从 mongo_mapper 迁移到 mongoid,当与自定义关系名称存在关系时,我在测试中不断收到“错误数量的参数(1 对 2)”错误,我真的坚持。

我有以下设置:

楷模

class Idea
  include Mongoid::Document
  include Mongoid::Timestamps

  field :text, type: String

  belongs_to :author, class_name: "User"
end

class User
  include Mongoid::Document
  include Mongoid::Timestamps

  field :name, type: String

  has_many :ideas
end

工厂

Factory.define :idea do |f|
  f.sequence(:text) { |n| "Idea #{n}" }
  f.association :author, :factory => :user
end

Factory.define :user do |f|
  f.sequence(:name) { |n| "Name #{n}" }
end

规格

describe "Something" do
  before do
    Factory(:idea) # <-- This fails
  end

  # ...
end

我在做傻事吗?遗漏了什么?我尝试使用inverse_of,但这似乎也没有解决它。等效的在 mongo_mapper 中工作正常,所以我觉得这是我在 mongoid 中做错的一些语法事情。

4

1 回答 1

0

原来是我傻了。我以前有一个 hack 方法User#ideas,这与 mongoid 连接事物的方式相冲突(出于某种原因,在 mongo_mapper 中需要它)

于 2013-06-27T20:50:16.923 回答