2

我有一個名爲@venues的數組,其中包含半徑內的所有餐館。每個場地has_many盤子,我想插入這些盤子的陣列到venueRails 3查詢多維數組

@venues = Venue.within(radius, :origin => [lat, lng]).order('distance ASC') 

@venues.each do |venue| 
    dishes = venue.dishes.where("? BETWEEN DATE(served_from) AND DATE(served_until)", Date.today) 
    # insert dishes into venue 
end 

如何插入餐具放入場內,這樣我可以訪問地點的所有可用的菜餚:@venues[i].dishes

回答

4

它可能會更有意義上Dish添加範圍本身:

scope :today, :conditions => ["? BETWEEN DATE(served_from) AND DATE(served_until)", Date.today] 

有了這一點,你可以用@venues[i].dishes.today

+0

同意訪問可用dishes。雖然澄清爲什麼他們所做的是一個糟糕的主意:他們正在改變每個Venue實例的狀態(通過將菜餚分配給自己的一個子集),而無意保存這些更改,因爲它們不是實際上正確。 – 2012-03-15 14:50:43

+0

thx,效果很棒!沒想到那個...... – 2012-03-15 15:58:27