【发布时间】:2014-09-17 19:03:20
【问题描述】:
我试图有两个搜索字段,但最终将两个结果组合在一起。 在一个字段中,您可以搜索列表的位置,在另一个字段中搜索关键字,这将查找列表的标题和描述。 输入位置和关键字后,应显示与位置和关键字匹配的列表。因此,如果我进入 San Francisco and Retail,只会弹出位于 SF 且带有描述或标题 Retail 的列表。
Feng Chen 建议通过以下方式在一个查询中执行此操作:
self.where("location like ? and (title like ? or description like ?)", query, query)
但是,这不会显示与位置和关键字(标题、描述)都匹配的结果。 我需要在我的视图中或其他任何地方更改某些内容吗?
这是我的listing.rb
def self.locsearch(search)
query = "%#{search}%"
if search
self.where("location like ? and (title like ? or description like ?)", query, query)
else
self.all
end
end
结束
Static_pages_controller.rb
def home
@listings = @listings.locsearch(params[:search]) if params[:search].present?
home.html.erb
<%= form_tag findjobs_path, :controller => 'listings', :action => 'locsearch', :method => 'get' do %>
<p>
<%= text_field_tag :search, "location" %>
<%= text_field_tag :search, "keyword" %>
<%= submit_tag "search" %>
</p>
</div>
<% end %>
【问题讨论】:
-
你的 descsearch 方法在哪里?
标签: ruby-on-rails ruby ruby-on-rails-3