Я использую скрепку, чтобы добавить файл в мою модель.
Я хочу использовать новую функцию Firefox 3.6, xhr.sendAsBinary
, чтобы отправить файл с запросом ajax.
Вот как я строю свой запрос:
var xhr = new XMLHttpRequest();
xhr.open("POST", "/photos?authenticity_token=" + token
+ "&photo[name]=" + img.name
+ "&photo[size]=" + img.size);
xhr.overrideMimeType('text/plain; charset=x-user-defined-binary');
xhr.sendAsBinary(bin);
name
и size
сохраняются в моей модели без проблем, но сам файл не перехватывается скрепкой.
моя модель
class Photo < ActiveRecord::Base
has_attached_file :photo, :styles => { :medium => "300x300>", :thumb => "100x100>" }
end
миграция
def self.up
add_column :photos, :photo_file_name, :string
add_column :photos, :photo_content_type, :string
add_column :photos, :photo_file_size, :integer
add_column :photos, :photo_updated_at, :datetime
end
и мой контроллер
# POST /photos
# POST /photos.xml
def create
@photo = Photo.new(params[:photo])
respond_to do |format|
if @photo.save
format.html { redirect_to(@photo, :notice => 'Photo was successfully created.') }
format.xml { render :xml => @photo, :status => :created, :location => @photo }
else
format.html { render :action => "new" }
format.xml { render :xml => @photo.errors, :status => :unprocessable_entity }
end
end
end
Есть идеи, как решить эту проблему?
Спасибо