Mongoid关系给出“错误的参数数量(1对2)”错误

时间:2013-06-27 14:55:51

标签: ruby mongodb rspec sinatra mongoid

我正在Sinatra中从mongo_mapper迁移到mongoid,并且当我与自定义关系名称存在关系时,我在测试中一直得到“错误数量的参数(1 for 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中做错了。

1 个答案:

答案 0 :(得分:0)

原来是我是傻瓜。我之前有一个hack方法User#ideas,这与mongoid如何挂钩事情发生冲突(由于某种原因,mongo_mapper需要它)