0

Rails 3.2.3 にアップグレードしたところ、突然このコードが機能しなくなりました。

  def self.search(query, project_id, person_id)
    if query
      where("number LIKE ?", "%#{query}%")
    elsif project_id
      where("project_id LIKE ?", project_id)
    elsif person_id
      where("projects.person_id = ?", person_id)     
    else
      scoped
    end
  end

whereエラーをトリガーするのは最後の句です。

SQLite3::SQLException: no such column: projects.person_id: SELECT COUNT(DISTINCT "invoices"."id") FROM "invoices" LEFT OUTER JOIN "items" ON "items"."invoice_id" = "invoices"."id" LEFT OUTER JOIN "payments" ON "payments"."invoice_id" = "invoices"."id" WHERE "invoices"."user_id" = 1 AND (projects.person_id = '1')

私のモデルでは、すべてのbelongs_toandhas_manyステートメントが正しく設定されており、以前のバージョンの Rails で動作していました (どちらのバージョンかはわかりません)。

これを再び機能させる方法を誰か教えてもらえますか?

助けてくれてありがとう。

4

1 に答える 1

1

テーブルに参加する必要があると思いますprojects

..
    elsif person_id
      joins(:projects).where("projects.person_id = ?", person_id)     
    else
..
于 2013-01-19T23:22:20.260 に答える