Rails"where"方法通过子属性查找父项

Sua*_*ado 4 activerecord ruby-on-rails

我有一个Rails应用程序,我正在尝试根据子类的日期创建父类列表.

现在我有:

orders = Order.where("order_reminders.date < ?", 1.month.from_now)
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误.

"没有这样的列:order_reminders.date"

我确定我的问题是我的查询,但我不知道如何解决它.

jvn*_*ill 9

你需要使用类似的方法references,joins,includeseager_load取决于你所需要的东西.确定选择内容的最简单方法是转到documentation/api并阅读它们.

至于答案,如果order_reminders被定义为一个关联Order,只使用默认情况下joins使用一个INNER JOIN,这意味着当你搜索某些内容时,它不会返回,orders如果不是order_reminders你想要的.

Order.joins(:order_reminders).where('order_reminders.date < ?', 1.month.from_now)
Run Code Online (Sandbox Code Playgroud)