【发布时间】:2015-03-18 09:21:47
【问题描述】:
我对 Ruby on Rails 非常陌生,并试图创建一个允许用户同时搜索多个参数的搜索功能;从,到。需要记住的是,在开发的后期可能会有更多的参数。我在搜索其中一个字段时可以使用它,但仅此而已。
搜索视图:
<%= form_tag(journeys_path, :method => "get", from: "search-form") do %>
<%= text_field_tag :search_from, params[:search_from], placeholder: "Search from", :class => 'input' %>
<%= text_field_tag :search_to, params[:search_to], placeholder: "Search to", :class => 'input' %>
<%= submit_tag "Search", :class => 'submit' %>
<% end %>
方法:
class Journey < ActiveRecord::Base
def self.search(search_from)
self.where("from_place LIKE ?", "%#{search_from}%")
end
end
控制器:
class JourneysController < ApplicationController
def index
@journeys = Journey.all
if params[:search_from]
@journeys = Journey.search(params[:search_from])
else
@journeys = Journey.all.order('created_at DESC')
end
end
def search
@journeys = Journey.search(params[:search_from])
end
end
我尝试了一些宝石和我在其他问题中找到的各种解决方案,但我在 RoR 方面还不够好,还没有在没有帮助的情况下成功地正确应用它们。如果能得到任何帮助,我将不胜感激。
谢谢!
【问题讨论】:
-
如果您不想使用任何 gem,请查看 Rails Way of doing multiple search railscasts.com/episodes/111-advanced-search-form
标签: ruby-on-rails ruby search