Ruby on rails 您如何使用mongoid 3+;中的has多相关关系;?

Ruby on rails 您如何使用mongoid 3+;中的has多相关关系;?,ruby-on-rails,mongoid,Ruby On Rails,Mongoid,我目前正在从mongoid 2.0迁移到mongoid 3.0.5。我在一个对象中拥有的关系之一是一个有许多相关的。如何将其迁移到mongoid 3.0.5?我无法通过谷歌搜索或在mongoid.org和two.mongoid.org网站上找到任何相关文档。有什么地方我应该找吗 代码如下: has_many_related :food_review do def find_or_initialize_by_user_id(user_id) criteria.where(:

我目前正在从mongoid 2.0迁移到mongoid 3.0.5。我在一个对象中拥有的关系之一是一个
有许多相关的
。如何将其迁移到mongoid 3.0.5?我无法通过谷歌搜索或在mongoid.org和two.mongoid.org网站上找到任何相关文档。有什么地方我应该找吗

代码如下:

  has_many_related :food_review do
    def find_or_initialize_by_user_id(user_id)
      criteria.where(:user_id => user_id).first || build(:user_id => user_id)
    end
  end

谢谢

查看mongoid 2.0的代码has\u many只是has\u many的别名:

➜  mongoid  git grep has_many_related
lib/ mongoid/relations/macros.rb:        alias :has_many_related :has_many

只需将其更改为:has_many并保持代码不变。Mongoid文档中有一个块的示例:has_many查看Mongoid 2.0的代码has_many related只是has_many的别名:

➜  mongoid  git grep has_many_related
lib/ mongoid/relations/macros.rb:        alias :has_many_related :has_many

只需将其更改为:has_many并保持代码不变。在Mongoid文档中有一个块示例:has_many

只需使用has_many而不是has_many相关

例如:

class User
  include Mongoid::Document
  field :name, type: String
  field ...

  has_many :food_reviews

  def find_or_initialize_by_user_id(user_id)
    criteria.where(:user_id => user_id).first || build(:user_id => user_id)
  end
end

class FoodReview
  include Mongoid::Document
  field ...

  belongs_to :user
end

请注意,复数形式的
有很多:食品评论
和单数形式的
类食品评论
。如果你想引用一篇单独的评论,只需使用has\u one:food\u review
(参见)

只需使用has\u many而不是has\u many相关

例如:

class User
  include Mongoid::Document
  field :name, type: String
  field ...

  has_many :food_reviews

  def find_or_initialize_by_user_id(user_id)
    criteria.where(:user_id => user_id).first || build(:user_id => user_id)
  end
end

class FoodReview
  include Mongoid::Document
  field ...

  belongs_to :user
end

请注意,复数形式的
有很多:食品评论
和单数形式的
类食品评论
。如果你想引用单个评论,只需使用has\u one:food\u review
(请参阅)

food\u review是同一个收藏的一部分还是不同的收藏。下面的答案似乎是对的,如果不是这样的话,你应该接受其中的一个,或者编辑你的帖子,更详细的内容是你评论同一个收藏的一部分或者不同的收藏。下面的答案似乎是对的,你应该接受其中一个,或者编辑你的帖子,如果不是这样的话,提供更多细节