使用 remote:true 和 remotipart + carrierwave gems 上传文件
Uploading files using remote:true and remotipart + carrierwave gems
我想通过remotipart + carrierwave做远程文件上传。问题是我的上传有效,但似乎是照常上传html。或者通过ajax上传,但是没有调用相应的js文件。
我有一个 form_for 和 remote:true,以及一个相应的控制器方法创建。由于表单是作为js提交的,所以使用了create.js.erb。
<% if @syllabus.errors.present? %>
$('#syllabus-errors').html('<%= escape_javascript(render 'layouts/error_messages', object: @syllabus) %>');
<% else %>
alert("ds");
$('#modal-body').html(<%= escape_javascript(render 'layouts/thanks') %>);
$('#syllabus-errors').html("");
<% end %>
日志显示:
(0.1ms) begin transaction
(0.1ms) rollback transaction
Rendered layouts/_error_messages.html.erb (1.0ms)
Rendered syllabuses/create.js.erb (12.0ms)
有点奇怪 error_messages 比 create.js.erb 渲染得更早,error_messages 在 create.js.erb 中渲染。
我通过添加这个解决了这个问题,如果:
<% if remotipart_submitted? %>
<% else %>
<% end %>
不知道为什么没有它就不能工作。
我想通过remotipart + carrierwave做远程文件上传。问题是我的上传有效,但似乎是照常上传html。或者通过ajax上传,但是没有调用相应的js文件。 我有一个 form_for 和 remote:true,以及一个相应的控制器方法创建。由于表单是作为js提交的,所以使用了create.js.erb。
<% if @syllabus.errors.present? %>
$('#syllabus-errors').html('<%= escape_javascript(render 'layouts/error_messages', object: @syllabus) %>');
<% else %>
alert("ds");
$('#modal-body').html(<%= escape_javascript(render 'layouts/thanks') %>);
$('#syllabus-errors').html("");
<% end %>
日志显示:
(0.1ms) begin transaction
(0.1ms) rollback transaction
Rendered layouts/_error_messages.html.erb (1.0ms)
Rendered syllabuses/create.js.erb (12.0ms)
有点奇怪 error_messages 比 create.js.erb 渲染得更早,error_messages 在 create.js.erb 中渲染。
我通过添加这个解决了这个问题,如果:
<% if remotipart_submitted? %>
<% else %>
<% end %>