事件有很多工作。
如何查找属于特定月份创建的事件的所有作业?
我尝试过,语法对我来说很好
@jobs = Job.joins(:event)
.where(events: {"starts_at BETWEEN ? AND ?",Time.now.beginning_of_month,Time.now.end_of_month})
.where(member_id: @member)`
但出现错误:
您有两种方法可以解决该SyntaxError问题:
Job.joins(:event)
.where("events.starts_at BETWEEN ? AND ?",Time.now.beginning_of_month,Time.now.end_of_month)
.where(member_id: @member)
Job.joins(:event)
.where(events: { starts_at: Time.now.beginning_of_month..Time.now.end_of_month })
.where(member_id: @member)
一种是使用“字符串方式”。表名,后跟列名以及绑定开始和结束日期的运算符。
另一个是使用哈希参数。首先将表名作为哈希键传递,其中包含该列,其值是开始结束日期之间的范围。
尽管要获得整个当月的价格,也可以使用all_month
:
(Time.now.beginning_of_month..Time.now.end_of_month) == Time.now.all_month
# true