2017-06-14 21 views
0

我有一種情況,我需要做一個Ajax調用併發布數據到控制器。由於是自定義提交,因此控制器中無法訪問正常的參數。因此,當我想保存數據時,我沒有我想要的ID。Rails - 隱藏輸入字段的使用情況/傳遞參數與AJAX

我的網址是這樣localhost/events/2/roster/1

我需要2個和1個在我的控制器,所以我可以操縱這些記錄。我認爲做這樣的事情在頁面上隱藏的輸入字段

<%= @event.id %> 
<%= @roster.id %> 

然後拉成價值CoffeeScript的,但它是讓我畏縮做到這一點。

有更好的方法來訪問控制器中的這些數據嗎?

你能通過ajax傳遞正常參數給控制器嗎?

感謝您的意見。

編輯 通常,當你做一個表單提交類似的form_for你回來這對你的數據,包括對象的ID PARAMS。當我做我的ajax POST時,id字段不適用於我。

通過自定義提交我的意思是它的AJAX發佈與表單提交。

EDIT 2路線:

resources :events do 
    resources :rosters 
end 

post 'rosters/validate' 

感謝,

+0

這是有點不清楚你提到的術語「自定義提交」和「正常參數」。你能詳細說明一下嗎? – vijoc

+0

我還是不太明白怎麼來的「ID字段不可用」。您提供的端點是否正在做您的ajax郵件的URL?如果是這樣,當然你有控制器的可用字段。這是如何訪問參數的問題嗎? – vijoc

+0

我這麼認爲?是否有一種簡單的方法在控制器中獲取事件ID 2和名冊ID 1? 我正在做一個函數調用ajax請求在我的控制器中,這是我需要這些值。 – jacksonecac

回答

1

鑑於你的路線/控制器沒有ID的信息,是的,你需要通過POST請求傳遞的ID。

帶有所需ID的隱藏輸入字段是一種方法,另一種方法是將嵌入<script>標記的位置直接插入JavaScript中。即像

<script> 
    window.event_id = <%= @event.id %>; 
    window.roster_id = <%= @roster.id %>; 
</script> 

然後你將它們添加到你的POST負載。如果你已經有一個你通過AJAX提交的表單,那麼使用隱藏的輸入字段是有意義的。

+0

當我在ajax提交上看到log/development.log時,我沒有看到那些傳入的參數。 – jacksonecac

+0

@jacksonecac能顯示被調用的路由規範和控制器方法嗎? – vijoc

+0

我添加了路線。 – jacksonecac