我正在使用两个文本字段进行搜索。它搜索两件事(现在的位置和描述),并仅显示与两者匹配的条目(列表)。 我想第二个文本字段也搜索标题,所以它应该寻找描述和标题。这会怎么样?
这就是我现在所拥有的
listing.rb
def self.locsearch(search_location, search_description)
return scoped unless search_location.present? || search_description.present?
where(['location LIKE? AND description LIKE?', "%#{search_location}%", "%#{search_description}%"])
end
home.html.erb
<%= form_tag findjobs_path, :controller => 'listings', :action => 'locsearch', method: :get do %>
<%= text_field_tag :location, params[:location] %>
<%= text_field_tag :descripiton, params[:descripiton] %>
<%= submit_tag "Search", name: nil %>
<% end %
listings_controller.rb
def index
@listings = @listings.locsearch(params[:location], params[:description])
end
此外,我的locsearch方法现在使用or ||条件。我如何实现“和”条件? (如果我将||改为&amp;&amp;我得到错误“未定义的方法或变量scroped”
答案 0 :(得分:2)
您确定要使用unless
unless
。
scoped
与模型一起使用。
Model.scoped
只有在您将return scoped
定义为局部变量或方法时,才能编写scoped
。
您还可以看到scope for databases