我對現有的Rails 3.2應用程序進行了AJAX化,並且從客戶端發出的某些請求更好地異步完成。爲了促進這一點,並減少渲染時間,我通過警報向用戶提供反饋。我在我的application.html.erb文件的空白的div我添加警報,從某些控制器的動作需要像這樣:在這樣的控制器動作中使用respond_to塊有什麼問題嗎?
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
警報空白格。雖然它工作正常,但我從來沒有見過這樣的警報,只能通過重定向。是否有任何不成文的(或書面的)Rails約定或規則可以通過採用這種方法打破?另外,有沒有辦法改爲做一個respond_with?我看不到我是如何從一條線做兩種不同類型的渲染。