ruby-on-rails-3 - 如何使 has_and_belongs_to_many 关系在 mongoid 中起作用

标签 ruby-on-rails-3 mongoid

我在 Rails 公司模型中有以下代码:

class Company
  include Mongoid::Document
  include Mongoid::Timestamps

  field :name,      type: String
  ...
  has_and_belongs_to_many :users
end

用户模型:
class User
  include Mongoid::Document
  include Mongoid::Timestamps
  include ActiveModel::SecurePassword

  field :email,           type: String
  ...
  has_and_belongs_to_many :companies
end

数据库中有一个公司记录,和一个用户记录,它们是相关联的。出于某种原因,以下代码不起作用:
c = Company.first
c.users # returns empty array

同样,以下代码不起作用:
u = User.first
u.companies

但以下代码确实有效:
c = Company.first
user = User.find c.user_ids.first

并且以下代码也有效:
u = User.first
company = Company.find u.company_ids.first

因此,如果我尝试从 company.users 访问用户,它不起作用,但 user_ids 数组确实有一个用户 ID 列表,当我尝试从该列表访问用户时,它会起作用。我该如何解决这个问题?

我正在使用 rails 3.2.5 和 mongoid 3.0.0.rc

最佳答案

我有完全相同的问题;)
确保您使用的是 mongodb 版本 > 2.0.0,有关更多详细信息,请参阅:http://mongoid.org/en/mongoid/docs/installation.html#installation

关于ruby-on-rails-3 - 如何使 has_and_belongs_to_many 关系在 mongoid 中起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11096691/

相关文章:

ruby-on-rails-3 - Rails 中关联的复数名称

jquery - Rails 3 ajax 调用 - ActionView::MissingTemplate

ruby-on-rails - 通过 _type 字段实例化 mongoid 子类

ruby-on-rails - 具有可选字段的模型未保存

ruby-on-rails - Rails 不尊重 has_one 的模型关联

ruby-on-rails - 创建一个选择标签,其中一些选项已分组,其他选项未分组

mysql - 在 mac 上使用 rails3 安装 mysql2 gem 的问题

ruby - 如何构建带有子对象的 Mongoid 对象的 json 对象?

ruby-on-rails - Rails 使用集合渲染部分内部部分

mongodb - Mongoid embeds_many/embedded_in 与 ActiveAdmin 中的 Formtastic 的关系......?