我正在对现有的 Rails 3.2 应用程序进行 AJAX 化,并且从客户端发出的一些请求最好异步完成。为了促进这一点,并减少渲染时间,我通过警报向用户提供反馈。我的 application.html.erb 文件中有一个空白 div,我根据需要从某些控制器操作中添加警报,如下所示:
def my_async_controller_action
@user = User.find(params[:id])
begin
#@user.import
flash[:notice] = "Your data is being downloaded."
rescue Exception => bang
flash[:alert] = "There was an error downloading your data: #{bang.message}"
end
respond_to do |format|
format.js { render 'common/flashes' }
end
end
我的common/flashes
文件只是使用 jQuery 来append
向空白 div 发出警报。虽然它工作正常,但我从未见过像这样传递的警报,只能通过重定向。采用这种方法是否有任何不成文(或成文)的 Rails 约定或规则被打破?另外,有没有办法将其作为respond_with 来代替?我看不到如何从一行中进行两种不同类型的渲染。