【发布时间】:2018-05-09 14:42:11
【问题描述】:
我有一个 ajax 帖子到我的后端 Rails 应用程序,用于发布上传文件。
在 JSON 中使用我的文件列表发布响应
之后,我需要在查看 detalhes.html.erb 页面重新加载我的文件列表。这个列表是部分的。这是我所拥有的:
控制器方法:
def upload_arquivo
@ponto_venda = PontoVenda.find(params[:pv_id])
nome = params[:key].split('/').last
@arquivo = Arquivo.new(nome: nome, endereco: params[:url], s3_key: params[:key], tamanho: params[:tam], user_id: params[:u_id], tag_id: params[:tag])
if @arquivo.save!
ArquivoPontoVenda.create(arquivo_id: @arquivo.id, ponto_venda_id: @ponto_venda.id, fachada: false)
response = { files: filtro_pv_arquivos, message: "O arquivo '#{nome}' foi salvo" }
else
response = { files: '', message: 'Ocorreu um erro ao salvar o arquivo, por favor, tente novamente' }
end
render json: response
end
我在_arquivos_upload.html.erb的ajax发布方法:
$.ajax({
url: 'some_url,
type: 'post', processData: false
})
.success(function(data) {
console.log(data.files.length);
// trying to reload partial after post request
$('#display-arquivos').html("<%= escape_javascript(render "arquivos_buscados") %>");
});
data.files 是正确的,我只需要找到一种方法将其传递给我的渲染部分。我怎样才能做到这一点?或者,如果这是一种不好的方法,我怎样才能做得更好?
这里是我渲染部分detalhes.html.erb的地方:
<div class="card" id="display-arquivos">
<%= render "arquivos_buscados" %>
</div>
我已经尝试了很多这样的:
【问题讨论】:
标签: javascript ruby-on-rails ajax request partial-views