Ruby on rails mongoid 6.1.0每个为零的错误未定义方法
我有两个基本的mongoid类:Ruby on rails mongoid 6.1.0每个为零的错误未定义方法,ruby-on-rails,mongodb,mongoid,eager-loading,Ruby On Rails,Mongodb,Mongoid,Eager Loading,我有两个基本的mongoid类: class CaseType include Mongoid::Document has_many :case_type_field_sets ... class CaseTypeFieldSet include Mongoid::Document ... belongs_to :case_type ... 在控制台中,我执行一些简单的操作,如: CaseType.includes(:case_type_field_sets).
class CaseType
include Mongoid::Document
has_many :case_type_field_sets
...
class CaseTypeFieldSet
include Mongoid::Document
...
belongs_to :case_type
...
在控制台中,我执行一些简单的操作,如:
CaseType.includes(:case_type_field_sets).count
这个很好用
如果我这样做
CaseType.includes(:case_type_field_sets).first
它抛出一个错误:
NoMethodError: undefined method `each' for nil:NilClass
from /(path)/lib/mongoid/relations/eager/base.rb:92:in `set_on_parent'
知道这是怎么回事吗 当您手动声明外键时会发生这种情况,如果您在习惯于构建mysql应用程序之后还要构建mongo应用程序,这是一种习惯。因此,如果您有如下手动声明:
belongs_to :parent
field :parent_id, type: String
删除该外键声明后,b/c mongoid将为您解决此问题,这将解决“未定义方法各为零”的问题。它是否特定于mongoid版本?你用以前版本的mongoid试过了吗?谢谢jagdeep的回答。我确实调查过这件事。问题是我在模型中声明了引用的_id字段。删除该选项解决了问题。当我被允许的时候,我会发布一个答案,这有一些愚蠢的规则。