【发布时间】:2012-03-15 19:31:10
【问题描述】:
我对 Rails 很陌生,我似乎无法理解这一点:
我有不同的项目属于不同的客户。
在我的 Project 模型中,我有两个搜索功能:
scope :search_by_name, lambda { |fn| where('name LIKE ?', "%#{fn}%") }
scope :search_by_client, lambda { |fn| where('client_id LIKE ?', fn) }
两者似乎都有效。例如在 URL 中我可以在这个查询中传递:
/projects?search_by_name=fooproject
我同样可以这样做:
/projects?search_by_client_name=misterx
这将产生属于 Client MisterX 的所有 Projects。
现在有没有办法结合这两个搜索功能,以便查询
/projects?search=foofoo
将检索名为 foofoo 的项目以及属于名为 foofoo 的客户的项目?
感谢您的帮助!
【问题讨论】:
-
你的控制器是什么样子的?
-
像这样:
@projects = current_user.projects.search_by_name(params[:name]).search_by_client(params[:client])
标签: ruby-on-rails ruby search scope