2013-02-15 71 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

相关问题