更好的基于联结对象字段查找记录的方法?

时间:2012-04-15 04:16:52

标签: ruby-on-rails ruby-on-rails-3 activerecord

我是rails的新手,并试图查看是否有一种更有效的方法来根据结点对象中设置的字段查找位置。关系是事件通过events_locations有许多位置。这是一个简化的例子:

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

这似乎很浪费,可能会产生很多疑问。还有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

我猜fieldvalue是events_locations的一个字段,然后是

class Event
  has_and_belongs_to_many :locations
end

@locations = @event.locations.where(events_locations: {fieldvalue: 1})