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

前端之家收集整理的这篇文章主要介绍了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

希望这可以帮助,

猜你在找的Ruby相关文章