Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 何处条款不再适用于Rails 3.2.3?_Ruby On Rails 3_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails 3 何处条款不再适用于Rails 3.2.3?

Ruby on rails 3 何处条款不再适用于Rails 3.2.3?,ruby-on-rails-3,ruby-on-rails-3.2,Ruby On Rails 3,Ruby On Rails 3.2,我升级到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_i

我升级到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')
在我的模型中,所有的
都属于
并且
有许多
语句设置正确,并且在我以前的Rails版本中工作正常(不确定是哪一个)

有人能告诉我如何让它重新工作吗


谢谢您的帮助。

我相信您必须加入
项目表:

..
    elsif person_id
      joins(:projects).where("projects.person_id = ?", person_id)     
    else
..

太好了,谢谢!事实上,我不得不使用这种语法来实现它:
joins(:project)