我是rails的新手,我很难用rails的方法编写查询。
我想要做的是拥有一个有很多膳食的食堂模型,但是我想只展示当天送达的食物。
所以我创建了一个食堂模型,它有很多餐。 然后我创建了Served_date模型,即属于餐和膳食has_many Served_dates,因此我们可以在用餐时指定多个日期。
我将如何进行此类查询?
// P.S。:Served_date.where(served_at: Date.today)
返回今天正在服务的Served_dates
谢谢!
答案 0 :(得分:1)
首先,按惯例不应强调模型名称,因此您应该使用ServedDate而不是Served_date。
此查询应该为您提供所需内容:
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)