我有以下协会:
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却得到了一些东西(最后一个只是我选择用来测试的东西)。
有什么问题吗?
请注意,用户有订单,但有事件的用户可以从其他用户那里获得订单.
这就是我想要得到的。
谢谢!
发布于 2013-12-10 17:24:28
User.last.events是一个事件集合,所以不应该有orders方法,User.last-events.orders应该生成一个no method error。
我还注意到,您的Order上没有一个Order声明,即使您在User上有has_many :orders。
发布于 2013-12-10 17:25:43
User.first.events为您提供了与指定用户记录关联的事件数组(在本例中,首先是最后一个)。
因此,当您调用User.first.events.orders时,可能会出现“noMethod orders”错误。
User.first.events.last.order将给出与第一个用户的最后一个事件相关联的订单。
如果您想要来自不适合该用户的事件的订单,则必须有一个更复杂的查询。
https://stackoverflow.com/questions/20500984
复制相似问题