Rails NoMethodError: undefined method `compact' error
Rails NoMethodError: undefined method `compact' error
我是rails新手,无法弄清楚以下关系有什么问题。
我有一些模型如下
class 问题
包括 Mongoid::Document
has_one:dep_q,class_name:'DepQ'
belongs_to:代表,class_name:"Rep"
结束
class DepQ
include Mongoid::Document
has_one :data_holder, class_name: 'DataHolder'
belongs_to :question, class_name: 'Question'
end
class DataHolder
include Mongoid::Document
has_one :rep, class_name:"Rep"
belongs_to :dep_q, class_name:"DepQ"
end
class Rep
include Mongoid::Document
has_many :question, class_name: 'Question'
belongs_to :data_holder, class_name: 'DataHolder'
end
我不知道我在这里做错了什么。我不知道为什么会收到此错误。我可以做到以下几点
a = Question.new
a.dep_q = DepQ.new
a.dep_q.data_holder = DataHolder.new
a.dep_q.data_holder.rep = Rep.new
但是,一旦我在 Rep 下创建一个新问题,我就会收到以下错误
NoMethodError: undefined method `compact' for #<Question:0x00000005168cf8>
为什么我会看到这个错误,如何解决?
因为Rep has_many questions
,Rep.questions
是一个数组。
您应该执行以下操作:
r = Rep.new
q = Question.new
r.questions << q
我是rails新手,无法弄清楚以下关系有什么问题。 我有一些模型如下 class 问题 包括 Mongoid::Document has_one:dep_q,class_name:'DepQ' belongs_to:代表,class_name:"Rep" 结束
class DepQ
include Mongoid::Document
has_one :data_holder, class_name: 'DataHolder'
belongs_to :question, class_name: 'Question'
end
class DataHolder
include Mongoid::Document
has_one :rep, class_name:"Rep"
belongs_to :dep_q, class_name:"DepQ"
end
class Rep
include Mongoid::Document
has_many :question, class_name: 'Question'
belongs_to :data_holder, class_name: 'DataHolder'
end
我不知道我在这里做错了什么。我不知道为什么会收到此错误。我可以做到以下几点
a = Question.new
a.dep_q = DepQ.new
a.dep_q.data_holder = DataHolder.new
a.dep_q.data_holder.rep = Rep.new
但是,一旦我在 Rep 下创建一个新问题,我就会收到以下错误
NoMethodError: undefined method `compact' for #<Question:0x00000005168cf8>
为什么我会看到这个错误,如何解决?
因为Rep has_many questions
,Rep.questions
是一个数组。
您应该执行以下操作:
r = Rep.new
q = Question.new
r.questions << q