2016-12-04 40 views
0

我有一個搜索表單,我需要一個複選框,將選擇,然後返回一個特定的列表是否允許寵物。我在視圖中創建了自定義路由,控制器方法和erb。但是,我沒有完成我要做的事情。複選框,將搜索數據庫布爾 - Rails 4

當用戶點擊Pets Allowed複選框,然後點擊搜索時,應該返回Pets allowed == true的列表。我不知道如何去做。

這是當前的代碼,但沒有完成我所追求的。這將重定向到/ pets_allowed,但這不是一件真實的事情。

listings_controller:

def pets_allowed 
    @listings = Listing.where(pets: true) 
end 

的routes.rb:

get "pets_allowed" => "listings#pets_allowed" 

html.erb:

<div> 
    <%= link_to 'Pets Allowed', pets_allowed_path, :class => 'button btn-transparent' %> 
</div> 
+0

你可以粘貼搜索表單代碼 – RSB

回答

2

您可能需要使用form_for而不是link_to

<%= form_for :search_pets, url: pets_allowed_path, method: :get do |f| %> 
    <%= f.check_box :has_pets %> 
<% end %> 

現在行動,

def pets_allowed 
    @listings = Listing.where(pets: params[:search_pets][:has_pets]) 
end 

當複選框未選中,它會返回所有不帶寵物及其檢查時,它會返回所有有寵物上市的列表。

希望有幫助!