2

私はという配列を半径内のすべてのレストランに持っています。各会場has_many料理と私はvenueにこれらの料理の配列を挿入したい。 @venues[i].dishes:私は会場の使用可能なすべての料理にアクセスできるように、私は会場にお皿を挿入するにはどうすればよいRails 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 

答えて

4

それはよりDishに自分自身をスコープを追加するために感じることもあります:それと

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

、あなたが合意@venues[i].dishes.today

+0

で利用可能dishesにアクセスすることができます。なぜ彼らが行っていることが悪い考えであるのかを明確にすることは有益かもしれません。彼らは、各Venueインスタンスの状態を(自分自身のサブセットに料理を割り当てることによって)変化させています。実際には正しい。 –

+0

thx、素晴らしい作品!それを考えなかった... –