【发布时间】:2014-10-21 13:49:06
【问题描述】:
我正在使用 jQuery File Upload gem 上传文件。
我想在文件上传时显示 Flash 通知,但是当我上传图片时没有任何反应。
我通过 Ajax 来做这件事。恢复、删除和存档等所有其他操作都在正常工作。 以下是我的控制器操作:
def upload
set_access_control_headers
@picture = Picture.new(picture_params)
if params[:picture][:file]
@picture.update_attributes({
file: params[:picture][:file],
})
end
flash[:notice] = "Picture is uploaded sucessfully!"
@frame = @picture.frame
@pictures = @frame.pictures.non_archived_pictures.paginate(:page => params[:page], :per_page => 12)
@frame.notify_add(@picture.file_url, @picture.message)
render json: {files: @frame.pictures.collect{|pic| pic.to_jq_upload}}
end
这里是upload.js.erb文件:
$("#non_archived_pictures").replaceWith('<div id=non_archived_pictures><%= j render :partial=>"frames/current_pictures" %></div>');
$(".page-wrapper').after('<%= j render :partial=>"frames/picture_modal",:locals=>{:picture=>@picture} %>")
$(".custom-header").after("<div class='alert alert-success' role=alert><%= flash[:notice] %></div>")
$(".alert-success").remove()
【问题讨论】:
-
upload.js.erb在控制器中调用显式渲染时永远不会渲染。您只能发送一个响应,json 或 js。另外 - 此处不要使用 flash - flash 存储在会话中,并将在下一个请求时显示。 -
您可以使用
flash.now[:notice]请在我的回答中查看更新
标签: ruby-on-rails ruby jquery-fileupload-rails