ruby-on-rails – Ruby on Rails CarrierWave宝石是否与Ajax配合使用?

由于某些原因,使用与Ajax的CarrierWave宝石似乎并不适用于我.我做错了吗?我遵循253载波波导轨迹,它没有 AJAX,但在我的应用程序中,我需要使用AJAX.这是我的代码

在图像文件字段中选择jpeg后的参数列表:

Parameters: {"item"=>{"remote_image_url"=>""}}

new.html.erb:

<%= form_for(@item,:url => create_item_path,:html => {:id => "create_item_form",:multipart => true}) do |f| %>
    <p>
      <%= f.file_field :image %>
    </p>
    <p>
      <%= f.label :remote_image_url,"or image URL" %><br />
      <%= f.text_field :remote_image_url %>
    </p>
    <%= f.submit "Save",:id => "save_button" %>
<% end %>

的application.js

$("#create_item_form").submit(function() {
    $.ajax({
      type: "POST",url: $(this).attr("action"),dataType: "script",data:  $("#destination_item").sortable('serialize') + "&" + $(this).serialize()
      });
      return false;
});

item.rb的

class Item < ActiveRecord::Base
  attr_accessible :description,:image,:remote_image_url
  belongs_to :user
  has_many :item_sub
  mount_uploader :image,ImageUploader
end

schema.rb

create_table "item",:force => true do |t|
    t.integer  "user_id"
    t.string   "title"
    t.string   "image"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

我的gemfile中有载波宝石,我没有改变任何应用程序/ uploader / image_uploader.rb.

感谢你的帮助!

解决方法

没有使用像Uploadify这样的图书馆就没有办法了.这是因为XMLHttpRequest(AJAX)标准不支持文件上传.唯一的方法,你真的可以假的是使用iFrame与Flash. Uploadify是这些选项中最好的,它具有最好的文档.这是客户端必须做的(浏览器). Uploadify真的不是一个红宝石宝石,它的Flash和js的集合允许浏览器“假”.

在服务器端,您可以使用carrierwave来支持上传,但是您需要一种从客户端获取他们的方法.这是一个非常相似的问题,应该给你你需要的指示.

Rails Carrier Wave with JQuery Uploader

希望这可以帮助,

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...