Ruby on rails 可以使用axlsx#U rails生成xlsx文件,但可以';当通过POST下载文件时

Ruby on rails 可以使用axlsx#U rails生成xlsx文件,但可以';当通过POST下载文件时,ruby-on-rails,angularjs,post,axlsx,Ruby On Rails,Angularjs,Post,Axlsx,我正在使用axlsx(使用axlsx\u rails进行模板化) 我的控制器中有: def listado_publicaciones if params[:publicaciones] @Publicaciones = params[:publicaciones] else @Publicaciones = Proyecto.where("concurso_id","=",@concurso.id).as_json({:include => [

我正在使用axlsx(使用axlsx\u rails进行模板化)

我的控制器中有:

  def listado_publicaciones
    if params[:publicaciones]
      @Publicaciones = params[:publicaciones]
    else
      @Publicaciones = Proyecto.where("concurso_id","=",@concurso.id).as_json({:include => [:creador => {:only =>[:id],:include =>[:ficha =>{:only =>[:nombres,:apellidos], :methods => [:fullname],:include => [:publicacions => {:only =>[:id,:omitir,:anio,:titulo,:revista_nombre,:primer_autor,:autor_correspondiente,:coautor,:estado_id],:include => [:subtipo]}]}]}]})
    end
    respond_to do |format|
      format.html
      format.json { render :json => @Publicaciones}
      format.xlsx
    end
  end
(稍后我将使用JBuilder来避免长@Publicaciones…)

“listado_publicaciones”首先显示一个html视图,其中使用angular获取发布的json列表,用户可以在生成excel之前丢弃一些项目。。 然后,用户单击一个按钮“ToExcel”,调用angularjs服务:

@project.service 'concursos_xlsx', [
  '$resource'
  ($resource) ->
    $resource '/concursos/:id/:action.xlsx', { id: '@id' },
      listado_publicaciones:
        method: 'POST'
        params: action: 'listado_publicaciones'
] 
我使用POST,因为我返回了一个$scope,其中包含我第一次在Json上获得的发布,这是一个非常大的发布列表和一些其他数据,所以如果我尝试使用GET,由于url太长,将无法工作

然后,同一个控制器“listado_publicaciones”获取参数publicaciones(params[:publicaciones]),并响应xlsx格式

然后,名为“listado_publicacions.xlsx.axlsx”的模板生成excel文件。。。。但是我不知道如何下载它。。。 如果我查看chrome开发者工具,我可以看到:

XHR finished loading: POST "http://localhost:3000/concursos/1/listado_publicaciones.xlsx".
如果我双击那里,我可以下载xlsx文件。。。但我只是不知道如何下载文件时,点击“到Excel”按钮。。。 我尝试过使用“发送_数据””、“发送_文件””,但可能我用错了。。。
请帮忙,谢谢

朱利奥,你试过使用隐形iframe吗。