首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >赋值时未定义方法`relations`属于关联

赋值时未定义方法`relations`属于关联
EN

Stack Overflow用户
提问于 2016-09-02 15:11:03
回答 1查看 611关注 0票数 0

我有两个模型:

代码语言:javascript
复制
class Annotation
  include Mongoid::Document
  belongs_to :event
  field :desc, type: String
end

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

然后我在rails控制台中通过输入以下命令创建了两个对象:

代码语言:javascript
复制
a = Annotation.new
e = Event::Event.new

现在一切都很好,但当我这么做的时候

代码语言:javascript
复制
a.event = e

我得到以下错误:

代码语言:javascript
复制
NoMethodError: undefined method `relations' for Event:Module

为什么会发生这个错误,以及如何修复它?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-06 16:34:03

试试这个:

代码语言:javascript
复制
class Annotation
  include Mongoid::Document
  belongs_to :event, class_name: 'Event::Event'
  ...
end

缺省情况下,belongs_to关联假定关联对象的类型为Event,但Event是一个模块。这里的类名应该是Event::Event。因此,这需要在关系中指定。

如果有帮助,请告诉我。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39286342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档