我們已經實現了在http://firststopcosmeticshop.co.uk類似的東西(嘗試在頂部的搜索)
搜索
你在找什麼,簡單地說,是一塊功能,這有助於你搜索你的數據。
這可以相對簡單地實現,但你必須確保你的語法是正確的:
#config/routes.rb
resources :employees do
get :search
end
#app/controllers/employees_controller.rb
class EmployeesController < ApplicationController
layout: Proc.new {|controller| controller.request.xhr? ? false : "application" }
def search
@emp_names = Employee.where code: params[:employee_code]
end
end
#app/views/employees/search.html.erb
<% @emp_names.each do |employee| %>
<%= employee.name %>
<% end %>
此設置將爲您提供加載search
物品的能力如果你想向他們展示,讓您既可以使用ajax
(詳見下文)的能力,或只是簡單的HTML/HTTP
阿賈克斯
如果你想使用Ajax提供「實時」的結果,你需要使用以下細節:
#app/assets/javascripts/application.js
$(document).on("ajax:success", "form", function(status, data, xhr){
$(this).append(data);
});
這應該呈現結果,無論你想在你的前端(請求)頁面。訣竅在於layout
的控制器的斷言根據請求的類型的接收(HTTP或XHR)
表
最後,您形式需求,以反映你希望的功能定義。目前,您沒有任何方式將請求發送到您的emp_names
方法,所以你需要創建一個更好的方式來管理它:
#view
<%= form_tag employees_search_path, remote: true do %>
<%= text_field_tag :input %>
<%= submit_tag %>
<% end %>
當然,形式可以顯着改變,但它基本上意味着你會發送一個簡單的請求到你的employees_search_path
,然後你將有能力管理控制器中的響應;通常或使用Ajax
您將需要使用ajax發佈emp_no並擁有一個控制器操作,該操作返回名稱 – 2014-09-22 08:14:31
我會檢查該操作。謝謝! – Gotchit 2014-09-22 08:16:22