2016-12-04 41 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 

当复选框未选中,它会返回所有不带宠物及其检查时,它会返回所有有宠物上市的列表。

希望有帮助!