在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”?
我很想知道其他人如何接近这一点,哪种方法更受欢迎。
答案 0 :(得分:0)
在你的控制器中创建
respond_to do |format|
format.js { render 'your_js_file' }
end
并且明智地将你在js.erb中所拥有的内容呈现为你做的事情的最佳方式。
1:它是最常见的方式,其他人阅读您的代码将更好地了解最新情况。我已经看到很多人用这种方式做过这种方式,所以我认为它是如何工作的。 “亲吻”
2:至于你所展示的第二种方法,它看起来很漂亮,但是因为你还没有理解它,并觉得有必要对它进行调试,告诉你它的读取能力应该与如何保持一样重要很酷的代码看起来。考虑一下这种方式,如果您必须调试它,那么其他任何读取您代码的人也会这样。
有时候最好的方法就是你知道怎么做。