【发布时间】:2020-04-11 21:43:00
【问题描述】:
我需要在我的搜索表单中添加过滤器。我需要我的搜索可以过滤有“玩具”或“高脚椅”的地方。如果用户添加一个过滤器,我有点困惑如何在控制器中创建 if else 条件,两者都或没有。
Places
t.string "name"
t.string "address"
t.float "latitude"
t.float "longitude"
t.bigint "user_id"
t.boolean "toy", default: false
t.boolean "high_chair", default: false
// Controller
def index
@places = policy_scope(Place)
@text_search = params[:search]
if @text_search.present?
@places = Place.global_search(params[:search]).where(type: @types).where(toy:
params[:toy].where(high_chair: params[high_chair])
else
@places = Place.all
@result = "No Result"
end
end
// View
<%= form_tag(places_path, method: :get, class: "search-form") do %>
<div class="search-input">
<%= text_field_tag :search, params[:search],
class: "search-input form-control",
placeholder: "Type your city...'"%>
<%#= check_box_tag(:toy) %>
<%#= label_tag(:toy, "Toys") %>
<%#= check_box_tag(:high_chair) %>
<%#= label_tag(:high_chair, "High Chair") %>
<%= submit_tag "????", class: "search-submit btn-search" %>
</div>
<% end %>
【问题讨论】:
标签: ruby-on-rails ruby filtering