如何显示ajax表单提交的flash消息?

时间:2013-02-15 03:34:10

标签: ruby-on-rails ajax

在Rails 3.2应用程序中,我有一个通过Ajax提交的表单,并通过flash消息向用户提供反馈。

有两种(或更多?)方法可以解决这个问题。

我可以在控制器中定义format js,然后重新加载flash消息部分

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

或者我可以从jquery函数渲染flash html(例如this)。

我的问题是,这两种方法都有任何优点或缺点吗?

我理解jquery函数是如何工作的,但是我还没有完全理解使用js方法在Rails内部发生的事情。一个人对另一个人有性能影响吗?

一种方法是否比另一种方法更“Railsy”?

我很想知道其他人如何接近这一点,哪种方法更受欢迎。

1 个答案:

答案 0 :(得分:0)

在你的控制器中创建

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

并且明智地将你在js.erb中所拥有的内容呈现为你做的事情的最佳方式。

1:它是最常见的方式,其他人阅读您的代码将更好地了解最新情况。我已经看到很多人用这种方式做过这种方式,所以我认为它是如何工作的。 “亲吻”

2:至于你所展示的第二种方法,它看起来很漂亮,但是因为你还没有理解它,并觉得有必要对它进行调试,告诉你它的读取能力应该与如何保持一样重要很酷的代码看起来。考虑一下这种方式,如果您必须调试它,那么其他任何读取您代码的人也会这样。

有时候最好的方法就是你知道怎么做。