2016-12-01 80 views
0

我正在使用Rails 3.2,並在此頁面顯示帶有結果列表的表,並通過@jobs變量傳遞給視圖一個SQL查詢,我想在這個頁面上添加一個按鈕,這樣當用戶點擊它時,會調用一個控制器動作,它執行一些數據庫工作,然後用最新的結果刷新表格。Rails - 當用戶點擊提交按鈕時如何更新表中的數據

我對JS和AJAX是全新的,而且Rails很綠,所以我不知道該怎麼做。

我創建了一個按鈕,像這樣:

<%= form_tag("controller/get_job", class: "text-center", id: "get-job-form") do %> 
<%= submit_tag "Get Job", id:"get-job-submit", class: "button" %> 
<% end %> 

以爲這樣就可以打電話給我的控制器的get_job作用。但我不希望這個動作導致一個新的頁面,我只想「刷新」該頁面內的用戶已經在。

我控制器操作是這樣的:

def get_job 
    job = find_job 
    job.employee = me 
    job.save 
    # Here I want to refresh the table so that this new job shows up in the table 
end 

我需要一些javascript腳本來做到這一點還是可行的只是通過調用控制器動作,然後調用可能再次渲染?

我很迷茫,任何幫助表示讚賞!謝謝。

回答

0

您可以使用javascript替換頁面上的表格。您可以從AJAX請求中獲取新表格和數據。 這可以幫助你:https://blog.codeship.com/unobtrusive-javascript-via-ajax-rails/

+0

不幸的是我遇到這之前來了,它並沒有真正幫助。現在我試圖找出如何甚至只是在單擊表單按鈕時發出JavaScript警報,並且它沒有正常工作。這個JavaScript代碼應該駐留在我的html所在的同一個視圖目錄中?謝謝。 –

0

要做到AJAX必須有3個步驟

  1. 客戶端發送一個請求到服務器

  2. 服務器處理來自客戶端的請求,併發送結果給客戶端。

  3. 客戶端收到來自服務器的響應。構建新的DOM HTML。

article也許有助於您瞭解AJAX是如何工作的

+0

我沒有發送任何數據,但按鈕提交,它只是作爲get_job控制器行動的觸發器 –

+0

這意味着你不需要線'''data:data_value''' 但是在你的控制器上,我看到'''job = find_job''',但我不知道如何找到find_job? –

+0

這只是一個返回作業的SQL查詢。這給用戶一個新的工作,然後應該顯示在該工作表 –

相關問題