在Rails 4.2.0中实现Rails Ajax搜索,可以通过以下步骤完成:
gem 'jquery-rails'
然后运行bundle install
命令安装该Gem。
rails generate controller Search
这将生成一个名为Search的控制器,并创建相关的文件。
search
的动作来处理搜索请求。示例代码如下:class SearchController < ApplicationController
def search
@results = ModelName.where("column LIKE ?", "%#{params[:query]}%")
respond_to do |format|
format.js
end
end
end
请将ModelName
替换为你要搜索的模型名称,column
替换为你要搜索的列名。
search.js.erb
的视图文件,用于处理Ajax请求的响应。在app/views/search目录下创建该文件,并添加以下代码:$('#search-results').html('<%= j render partial: "results", locals: { results: @results } %>');
这里假设你有一个名为_results.html.erb
的局部视图文件,用于渲染搜索结果。
<%= form_tag search_path, remote: true, method: :get do %>
<%= text_field_tag :query, nil, placeholder: "Search..." %>
<%= submit_tag "Search" %>
<% end %>
<div id="search-results"></div>
这里使用了form_tag
方法创建一个搜索表单,并将remote: true
选项设置为true,以便使用Ajax提交表单。
get 'search', to: 'search#search', as: 'search'
现在,当用户在搜索表单中输入关键字并提交时,将会通过Ajax请求发送到Search控制器的search动作。搜索结果将会通过Ajax响应返回,并在页面上显示在search-results
容器中。
这是一个基本的Rails Ajax搜索的实现方法。根据具体需求,你可以进一步优化和定制搜索功能。
云+社区沙龙online第5期[架构演进]
Elastic 中国开发者大会
企业创新在线学堂
Elastic 中国开发者大会
云+社区技术沙龙[第17期]
腾讯云GAME-TECH游戏开发者技术沙龙
云+社区技术沙龙[第20期]
腾讯位置服务技术沙龙
领取专属 10元无门槛券
手把手带您无忧上云