如何构建搜索表单?
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)'
我正在尝试为我的应用制作一个简单的搜索表单。我只想搜索 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)'