我是rails的新手,我很难使用rails的方法来编写查询。
我试图完成的是有一个食堂模型,有很多餐,但我想只显示当天供应的饭菜。
所以我创建了一个食堂模型,has_many Meals。然后,我创建了一个模型,即belongs_to meal和Meal has_many Served_dates,这样我们就可以在提供餐点时指定多个日期。
我该如何进行这样的查询呢?
//P.S.:Served_date.where(served_at: Date.today)返回今天服务的Served_dates
谢谢!
发布于 2012-11-11 10:30:42
首先,按照惯例,模型名称不应该加下划线,因此您应该使用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)https://stackoverflow.com/questions/13328047
复制相似问题