首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用has_many选择has_many

用has_many选择has_many
EN

Stack Overflow用户
提问于 2013-12-10 17:17:22
回答 2查看 58关注 0票数 1

我有以下协会:

代码语言:javascript
复制
class User
  has_many :orders
  has_many :events
end

class Event
  belongs_to :user
  has_many :orders
end

class Order
  belongs_to :event
end

我的问题是,在执行User.last.events.orders时,我什么也得不到,而User.last.events.last.orders却得到了一些东西(最后一个只是我选择用来测试的东西)。

有什么问题吗?

请注意,用户有订单,但有事件的用户可以从其他用户那里获得订单.

这就是我想要得到的。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-10 17:24:28

User.last.events是一个事件集合,所以不应该有orders方法,User.last-events.orders应该生成一个no method error

我还注意到,您的Order上没有一个Order声明,即使您在User上有has_many :orders

票数 1
EN

Stack Overflow用户

发布于 2013-12-10 17:25:43

User.first.events为您提供了与指定用户记录关联的事件数组(在本例中,首先是最后一个)。

因此,当您调用User.first.events.orders时,可能会出现“noMethod orders”错误。

User.first.events.last.order将给出与第一个用户的最后一个事件相关联的订单。

如果您想要来自不适合该用户的事件的订单,则必须有一个更复杂的查询。

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

https://stackoverflow.com/questions/20500984

复制
相关文章

相似问题

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