我有以下关联:
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是由东西产生的(最后只是我选择测试它的东西)
有什么问题?
请注意,用户有订单,但拥有活动的用户可以拥有其他用户的订单...
这就是我想要到达的地方。
谢谢!
答案 0 :(得分:2)
User.first.events
为您提供与指定用户记录关联的事件数组(在本例中为第一个,在您的情况下为最后一个)
因此,当您拨打User.first.events.orders
时,您可能会收到“#Method order'错误。
User.first.events.last.order
将为您提供与第一个用户的最后一个事件相关联的订单。
如果您希望来自非该用户的活动的订单,则必须有更复杂的查询。
答案 1 :(得分:1)
User.last.events
是事件的集合,因此不应该有orders
方法,而User.last-events.orders
应该生成no method error
。
我注意到,即使您belongs_to :user
上有Order
,您has_many :orders
上也没有User
声明。