【发布时间】:2011-01-20 10:12:21
【问题描述】:
我对 mongoDB 很陌生,我只是将它用于我正在从事的新 Rails 项目。 我现在想做的是,让(嵌入式)文档引用另一个集合,但角色不同。
不知何故,这似乎不起作用。我知道,我无法定义从外部集合到嵌入集合的关系。因此,就我而言,我无法从我的用户那里访问位置,我对此很好。不过,我需要定义 referenced_in :location 部分,否则当我尝试向 Place 添加新位置时会收到错误消息 undefined method 'name' for nil:NilClass。
所以这只是序言。我的实际问题是,这些角色的东西似乎不起作用。当我在地点locations.create(:user_a => some_user) 中创建类似的新位置时,user_b 也被设置为该用户。
有什么办法可以让它工作吗?还是我做错了什么?
class Place
include Mongoid::Document
embeds_many :locations
end
class Location
include Mongoid::Document
embedded_in :place, :inverse_of => :locations
references_one :user_a, :class_name => "User" #, :stored_as => :array
references_one :user_b, :class_name => "User" #, :stored_as => :array
end
class User
include Mongoid::Document
referenced_in :location, :inverse_of => :dropper
referenced_in :location, :inverse_of => :picker
end
【问题讨论】:
-
你用的是哪个mongoid版本?
-
sry,完全忘记了:mongoid 2.0.0.beta.20 on rails 3.0.3
标签: ruby-on-rails ruby-on-rails-3 mongodb entity-relationship mongoid