0

我是 rails 新手,想看看是否有更有效的方法可以根据 junction 对象中设置的字段来查找位置。关系是事件通过 events_locations 有很多位置。这是一个简化的示例:

@locations=[]
events_locations = @event.events_locations.where(:fieldvalue=>1)
events_locations.each do |el|
  @locations<<Location.find(el.location_id)
end

这似乎很浪费,并且可能会产生很多查询。有没有更好的办法?

4

1 回答 1

2

我猜fieldvalue是events_locations的一个字段,那么

class Event
  has_and_belongs_to_many :locations
end

@locations = @event.locations.where(events_locations: {fieldvalue: 1})
于 2012-04-15T08:09:12.027 回答