我正在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中做错了。
答案 0 :(得分:0)
原来是我是傻瓜。我之前有一个hack方法User#ideas
,这与mongoid如何挂钩事情发生冲突(由于某种原因,mongo_mapper需要它)