1

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

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

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

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

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

我的问题是,这两种方法有什么优点或缺点吗?

我了解 jquery 函数的工作原理,但我(尚未)完全了解使用 js 方法的 Rails 内部发生了什么。两者之间是否存在性能影响?

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

我很想知道其他人如何处理这个问题,这是首选的方法。

4

1 回答 1

0

在您的控制器中创建

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

同样明智的是,您在 js.erb 中要渲染的内容是完成您所做工作的最佳方式。

1:这是最常见的方式,阅读您的代码的其他人会更好地理解发生了什么。我已经看到很多人这样做了几次,所以我理解它是如何工作的。“吻”

2:至于您展示的第二种方法,它“看起来”不错,但是由于您还缺乏理解它并且觉得需要调试它,这会告诉您它的阅读能力应该与代码的酷炫程度一样重要看起来。如果您必须调试它,请考虑这种方式,其他阅读您的代码的人也将如此。

有时最好的方法,就是你知道如何做的方法。

于 2013-02-15T04:18:01.667 回答