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 %>