【发布时间】:2014-05-13 14:27:31
【问题描述】:
我有两个班级:
class User
include Mongoid::Document
has_one :preference
attr_accessible :name
field :name, type: String
end
class Preference
include Mongoid::Document
belongs_to :user
attr_accessible :somepref
field :somepref, type: Boolean
end
我有两个工厂:
FactoryGirl.define do
factory :user do
preference
name 'John'
end
end
FactoryGirl.define do
factory :preference do
somepref true
end
end
创建User 后,两个文档都保存在数据库中,但Preference 文档缺少user_id 字段,因此当我从数据库中读取User 时,has_one 关系不起作用。
我目前已通过在User factory 中添加这段代码来修复它:
after(:create) do |user|
#user.preference.save! #without this user_id field doesn't get saved
end
谁能向我解释为什么会发生这种情况,有没有更好的解决方法?
【问题讨论】:
-
Mongoid block until created? 的可能重复项
标签: ruby ruby-on-rails-3 mongoid factory-bot