2011-12-09 28 views
2

我想知道是否有辦法做一個js.erb文件內的重定向。我正在將應用程序轉換爲使用ajax,因此感覺更快捷,但是我的創建操作會將用戶留在索引頁上。重定向裏面create.js.erb

我可以這樣做:

window.location.replace("/model/@object.id") 

但我寧願做一個完全成熟的redirect_to的model_path(@object)是否有可能?

+1

如果你依靠瀏覽器,那麼你的選擇是window.location.replace,表單提交(默認在導軌中)或鏈接。根據您轉換應用的程度,您可能希望使用像backbone.js這樣的框架來協助您的AJAX調用。 – Gazler

+1

由於此重定向在ajax調用(js.erb)中,所以javascript是正確的選項。所以你的解決方案是有效的(redirect_to在服務器端,而js.erb在客戶端運行) –

回答

4

如果有人發現了這一點,這是我在我的名單的create.js.erb代碼:

<% if @list.errors.any? %> 
//render errors 
<% else %> 
$(window.location.replace("/list/<%= @list.id %>")) 
<% end %> 
+1

這可以工作,但要小心在erb文件中使用js樣式的註釋。他們並不總是正確解析。 – prusswan