我在使用 rails 中的 .where 语句时遇到了一些问题。有人可以帮忙吗?
<% due_late = project.tasks.where(":date_due < ?", Date.today).count %>
我在使用 rails 中的 .where 语句时遇到了一些问题。有人可以帮忙吗?
<% due_late = project.tasks.where(":date_due < ?", Date.today).count %>
date_due
在这种情况下,是数据库中定义的列名,而不是 Ruby 符号:date_due
。
<% due_late = project.tasks.where("date_due < ?", Date.today).count %>
#---------------------------------^^
JOIN
如果两个表具有相同的列名,则需要在查询中区分表名:
# Assuming it is tasks.date_due you are testing, rather than phases.date_due
<% due_late = project.tasks.where("tasks.date_due < ?", Date.today).count %>
作为建议,与其在视图 .erb 文件中执行此计算,不如在模型中创建一个返回值的方法。
def due_late
tasks.where("tasks.date_due < ?", Date.today).count
end
在视图中称为
<%= project.due_late %>