我有一個搜索表單,用於搜索稱爲屬性的地理編碼模型。地理編碼搜索工作正常。但是,當我向搜索引入更多參數時,它會返回不正確的結果。Rails在URL中查詢參數兩次
我在屬性模型,吸菸者和寵物上有兩個布爾列。在我的網址我注意到,寵物同樣的查詢參數插入兩次:
我使用Rails 4.2.6,2.3.0的Ruby和PostgreSQL
搜索表單:
<%= form_tag properties_path, method: :get do %>
<%= label :location, "Search properties near : " %>
<%= text_field_tag :location, params[:location] %>
<%= label :distance, "Distance : " %>
<%= text_field_tag :distance, params[:distance] %>
<%= label :pets, "Pets : " %>
<%=hidden_field_tag 'pets', false%>
<%=check_box_tag 'pets', true %>
<%= label :smokers, "Smokers : " %>
<%=hidden_field_tag 'smokers', false%>
<%=check_box_tag 'smokers', true %>
<%= submit_tag "Search" %>
<% end %>
屬性控制器動作:
def index
if params[:location].present?
@properties = Property.near(params[:location], params[:distance] || 10)
.where("pets = :pets", {pets: params[:pets]})
.where("smokers = :smokers", {smokers: params[:smokers]})
else
@properties = Property.all
end
端
你需要刪除'<%= hidden_field_tag'pets',false%>' – Pavan
我試過了,但是如果複選框沒有被選中正在發送一個空值而不是false,這打破了我的搜索。 – showFocus
然後爲寵物e.t.c創建一個範圍。 'scope:pets, - >(pets){where(pets:pets)if pets.present? }'然後'Property.pets(params [:pets])' –