分配时未定义的方法`relations`属于关联

时间:2016-09-02 07:11:03

标签: ruby-on-rails mongoid

我有2个型号:

class Annotation
  include Mongoid::Document
  belongs_to :event
  field :desc, type: String
end

class Event::Event
  include Mongoid::Document
  has_many :annotations
end

然后我输入:

在rails控制台中创建了2个对象
a = Annotation.new
e = Event::Event.new

现在每个人都很好,但是当我做的时候

a.event = e

我收到以下错误:

NoMethodError: undefined method `relations' for Event:Module

为什么会发生此错误以及如何解决?谢谢。

1 个答案:

答案 0 :(得分:1)

试试这个:

class Annotation
  include Mongoid::Document
  belongs_to :event, class_name: 'Event::Event'
  ...
end

默认情况下,belongs_to关联假定关联的对象属于Event类型,但Event是一个模块。此处的班级名称应为Event::Event。因此,需要在关系中指定。

如果有帮助,请告诉我。