如何构建搜索表单?

How to build a search form?

我正在尝试为我的应用制作一个简单的搜索表单。我只想搜索 user table 的 internship 列。我尝试了几种不同的方法,但对我没有任何用处。我也不想使用像 Solr 或 Elasticsearch 这样的插件;我只想留在 Rails 框架内。有没有人有他们可以 post 的有效代码示例?

这是我的...

在我的模型中:

  def self.search(search)
    if search
      losearch = search.downcase
      where('lower(artist) LIKE ?, "%#{search.to_s.downcase}%")
    end
  end 

在我的控制器中:

def index
  if params[:search]
    @pins = Pin.search(params[:search])
  else  
    @pins = Pin.paginate(:page => params[:page], :per_page => 50).order("created_at DESC")
  end  


  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @pins }
    # format.js
  end
end

在我看来:

<div class="index_search">
  <%= form_tag(pins_path, :method => "get", class: "navbar-form", id: "search-form") do %>
  <div class="input-append">
    <%= text_field_tag :search, params[:search], class: "span2  form-control", placeholder: "Search Reviews" %>
    <!-- In order to have the "search" icon int the button, we need to use plain HTML instead 
         of using a Rails form helper -->
    <button class="btn btn-default" type="submit"><i class="fa fa-search"></i></button>
    <% end %>
  </div> 
</div> 

您需要将上面的 "pins_path" 更改为您需要的任何路径,并且 'lower(artist) LIKE ?' 应该是 'lower(internship)'