Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails :remote=>;true在表单中使用文件上载程序时不起作用_Ruby On Rails_Ajax_Ruby On Rails 3_Jquery - Fatal编程技术网

Ruby on rails :remote=>;true在表单中使用文件上载程序时不起作用

Ruby on rails :remote=>;true在表单中使用文件上载程序时不起作用,ruby-on-rails,ajax,ruby-on-rails-3,jquery,Ruby On Rails,Ajax,Ruby On Rails 3,Jquery,基本上,当我在表单中包含并使用一个文件上传程序时,它似乎取消了:remote=>true功能,并将操作处理为HTML而不是JS。有什么想法吗?AJAX图像上传不起作用,至少不是以标准方式 有一些更新的HTML5技术可以让它工作,还有一些使用 有一个很棒的库,它使用progress meter进行多文件ajax上传,并根据浏览器的不同使用不同的技术 AJAX上载库: 这将需要一点额外的工作,但结果可以真的很好 我刚刚遇到了同样的问题,并找到了以下替代方案使其发挥作用: Gem remotipart

基本上,当我在表单中包含并使用一个文件上传程序时,它似乎取消了:remote=>true功能,并将操作处理为HTML而不是JS。有什么想法吗?

AJAX图像上传不起作用,至少不是以标准方式

有一些更新的HTML5技术可以让它工作,还有一些使用

有一个很棒的库,它使用progress meter进行多文件ajax上传,并根据浏览器的不同使用不同的技术

AJAX上载库:


这将需要一点额外的工作,但结果可以真的很好

我刚刚遇到了同样的问题,并找到了以下替代方案使其发挥作用:

Gem remotipart=>

jQuery插件“jaxy”=>


我想我更喜欢第一种选择。但是有选择是很好的

您无法通过AJAX上传文件,因此您的请求显然是纯HTML的,因为您没有任何特定的内容:js和rails认为这只是一个纯HTML POST请求

然后
bundle安装

//= require jquery.remotipart
示例_layout.html.erb

<%= form_for @sample, :html => { :multipart => true }, :remote => true do |f| %>
  <div class="field">
    <%= f.label :file %>
    <%= f.file_field :file %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
create.js.erb

// Display a Javascript alert
alert('success!');
<% if remotipart_submitted? %>
  alert('submitted via remotipart')
<% else %>
  alert('submitted via native jquery-ujs')
<% end %>
//显示Javascript警报
警惕(“成功!”);
警报(“通过remotipart提交”)
警报('通过本机jquery ujs提交')

Remotipart很棒,仍然可以在Rails 4上使用。这里是一个直接链接到github页面的文档。
def create
  respond_to do |format|
    if @sample.save
      format.js
    end
  end
end
// Display a Javascript alert
alert('success!');
<% if remotipart_submitted? %>
  alert('submitted via remotipart')
<% else %>
  alert('submitted via native jquery-ujs')
<% end %>