2013-02-15 128 views
1

在Rails 3.2應用程序中,我有一個通過Ajax提交的表單,反饋通過flash消息提供給用戶。如何顯示來自ajax表單提交的Flash消息?

有兩種(或更多?)方式來處理這個問題。

我可以定義在控制器format js,然後重新加載閃消息部分

#template.js.erb 
`$(".flash-container").html("<%= escape_javascript(render partial: 'shared/flash_messages') %>");` 

或者我可以呈現來自一個jquery函數(例如this)閃光燈HTML。

我的問題是,這兩種方法都有什麼優點或缺點?我知道jquery函數是如何工作的,但是我還沒有完全理解使用js方法的Rails內部中發生了什麼。相互之間是否有性能影響?

一種方法被認爲比另一種更「Railsy」嗎?

我很想了解其他人會如何處理這個問題,以及哪種方法是首選。

在您的控制器
+0

你有第一種方法嗎? – 2013-02-15 04:07:44

回答

0

創建

respond_to do |format| 
    format.js { render 'your_js_file' } 
end 

和喜歡聰明你在你的js.erb渲染是做你做什麼的最好方法。

1:它最常見的方式和其他人閱讀你的代碼將更好地理解發生了什麼事情。我已經看到很多人這樣做了這樣的方式,所以正確的方式我承認它是如何工作的。 「KISS」

2:至於第二個方法,你顯示它是好的「尋找」,但由於你缺乏瞭解它只是還沒有,感覺需要調試它,告訴你關於它的讀取能力,應保持一樣代碼看起來酷得多。如果您不得不對其進行調試,那麼其他讀取您的代碼的人也會考慮這種方式。

有時候最好的方法就是你知道如何。

+0

感謝Digital Cake。我有第一種方法工作。第二個我不需要調試,更多的修改以適應我的應用程序。我想知道的是,有沒有性能考慮或其他優點/缺點,或者它們是否以不同的方式做同樣的事情?關於KISS和做事「軌道」的好方法 – 2013-02-15 04:27:46