2014-09-22 26 views
0

首先:使用文本字段輸入某個emp_no。 第二:我試圖通過表格顯示/顯示查找值。Rails渲染查找值

這裏的觀點:

<div class="field"> 
    <%= f.label :emp_no %><br /> 
    <%= f.text_field :emp_no%> 
    </div> 

    <div class="field"> 
    <%= f.label :emp_name %><br /> 
    <div><label><%= @emp_name %></label></div> 
    </div> 

這裏是我的控制器:

before_filter :customer 

    def customer 
    @emp_name = where(Employee.params[:employee_code]) 
    end 

任何輸入都非常感謝!謝謝!

+0

您將需要使用ajax發佈emp_no並擁有一個控制器操作,該操作返回名稱 – 2014-09-22 08:14:31

+0

我會檢查該操作。謝謝! – Gotchit 2014-09-22 08:16:22

回答

0

我們已經實現了在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

+0

謝謝你的詳細解釋。我只是開始在軌道上的紅寶石,需要看看不同的方式來做它的事情。再次感謝!:) – Gotchit 2014-09-22 10:04:26

+0

沒問題!請讓我知道它是否對你有幫助! – 2014-09-22 10:06:42

+0

當然可以!謝謝! – Gotchit 2014-09-22 10:07:22