Ruby on rails 3 何处条款不再适用于Rails 3.2.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
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)