2013-05-17 41 views
0

我在表單中成功使用了Ajax,但是我無法找到創建操作後最好的方法是什麼?創建之後的Ajax重定向?

我使用respond_with並使用一個Ajax相同的邏輯調用create.js文件應該呈現局部顯示當一切都OK和部分新的錯誤數據時出現錯誤。 但是,在相同的情況下,顯示和新操作相當複雜,並且定義了部分中使用的一組變量。這意味着我必須重複定義create動作中變量的代碼,以便能夠顯示create.js文件中的部分。

這似乎不是很好的做法,我懷疑是不是正確使用Ajax。 我已經瞭解到,在Ajax調用之後不應該嘗試重定向,但我還沒有找到解決我的問題的任何create.js文件的示例

是我做的最好的做法還是更好使用 Ajax處理創建動作的輸出的方法?

回答

0

如果我正確理解你,你想渲染所有窗體「新」,如果有錯誤。

你不應該這樣做,導致已經在屏幕上的新形式(與用戶鍵入的數據)。您可以僅渲染ajax響應中的錯誤塊。

+0

好的,可以解決這個問題 - 我可以使用rails的錯誤幫助來做到這一點。 – Hans

+0

另一個問題呢。我應該渲染部分 – Hans

+0

您可以創建2個js.erb文件 - create.js.erb和errors.js.erb。 在首位不服那樣: $( '#節目')的html( '<%= escape_javascript(渲染(:局部=> 'show_new'))%>'); 。 在第二: $( '#ERROR_EXPLANATION')的html( '<%= escape_javascript(渲染(:局部=> 'error_messages'))%>'); 當然,用你的名字替換partials和DOM id的名字。但邏輯可以是這樣的。 – Parandroid