0

Rails の .where ステートメントに問題があります。誰でも助けることができますか?

<% due_late = project.tasks.where(":date_due < ?", Date.today).count %>
4

1 に答える 1

4

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 %>
于 2012-12-10T21:07:03.047 に答える