0

私はrailsを初めて使用し、railsのメソッドを使用してクエリを作成するのに苦労しています。

私が達成しようとしているのは、食事の多い食堂モデルを作成することですが、その日に提供されている食事のみを表示したいと思います。

そこで、has_manyMealsという食堂モデルを作成しました。次に、食事に属するServed_dateモデルとMeal has_many Served_datesを作成したので、食事が提供されるときに複数の日付を指定できます。

このようなクエリを作成するにはどうすればよいですか?

// PS:Served_date.where(served_at: Date.today)今日提供されているServed_datesを返します

ありがとう !

4

1 に答える 1

1

まず、モデル名は慣例により強調されるべきではないため、Served_dateの代わりにServedDateを使用する必要があります。

このクエリは、必要なものを提供するはずです。

Meal.joins(:served_dates).where(served_dates: {served_at: Date.today})

さらに良いことに、それをパラメータ化して、より移植性の高いスコープに変えることができます。

class Meal < ActiveRecord::Base
  scope :served_on, lambda{|date| joins(:served_dates).where(served_dates: {served_at: date}) }
end

そして、電話してください:

Meal.served_on(Date.today)
于 2012-11-11T02:30:42.090 に答える