2009-03-30 8 views
-1

je modèle simple qui ressemble à ceci:File upload tue rails application et le serveur

def video_file=(input_data) 
    unless input_data.to_s.empty? 
    newfile = File.open("#{RAILS_ROOT}/public/to_upload/#{self.filename}_vid.f4v", "wb") do |f| 
     while buff = input_data.read(4096) 
     f.write(buff) 
     end 
    end 
    end 
end 

et ici l'erreur qui rails parvient à afficher, puis meurt, littéralement.

ActiveRecord::StatementInvalid in <ControllerName> 

Pourquoi?

Répondre

2

Remplacer

newfile = File.open(path, "wb") do |f| 
while buff = input_data.read(4096) 
    f.write(buff) 
end 

avec

if input_data.respond_to?(:read) 
    File.open(path, "wb") { |f| f.write(input_data.read) } 
end