Hi All, Please help. I am sure there is something obvious I am overlooking in the code but I cannot see it. Please note, as detailed below, I am on Bluehost using Rails 2.2.2.
The code is example code from TutorialsPoint - URL: http://www.tutorialspoint.com/ruby-on-rails/rails-file-uploading.htm and modified to run on Linux bluehost. On bluehost - http://upload.datajazz.com/ gives standard 'Welcome Page' - http://upload.datajazz.com/upload/index presents html page for file upload upload file selection works failure occurs on 'Upload' button click Issue Summary: - 'nil' whereas it should be variables being passed from uploadfile.rhtml - Line 3 in [app/models] data_file.rb name = upload['datafile'].original_filename # Line 3 - Line 7 in [app/controllers] upload_controller.rb post = DataFile.save(params[:upload]) # Line 7 Regards ### Environment information Hosting service: Bluehost ### Rails Environment Ruby version 1.8.6 (x86_64-linux) RubyGems version 1.3.1 Rails version 2.2.2 Active Record version 2.2.2 Action Pack version 2.2.2 Active Resource version 2.2.2 Action Mailer version 2.2.2 Active Support version 2.2.2 Application root ~/rails/upload Environment development Database adapter sqlite3 Database schema version 0 ### Relevant source files ### dir: [app/models] file: data_file.rb class DataFile < ActiveRecord::Base def self.save(upload) name = upload['datafile'].original_filename # Line 3 directory = "public/data" # create the file path path = File.join(directory, name) # create or over-write file 'path' with 'datafile' contents File.open(path, "wb") { |f| f.write(upload['datafile'].read) } end end ### dir: [app/controllers] file: upload_controller.rb class UploadController < ApplicationController def index render :file => 'upload/uploadfile.rhtml' end def uploadFile post = DataFile.save(params[:upload]) # Line 7 render :text => "File has been uploaded successfully" end end ### dir: [app/views/upload] file: uploadfile.rhtml <h1>File Upload</h1> <% form_tag :action => 'uploadFile', :multipart => true do %> <p><label for="upload_file">Select File</label> : <%= file_field 'upload', 'datafile' %></p> <%= submit_tag "Upload" %> <% end %> ### run application http://upload.datajazz.com/upload/index ### Error Output NoMethodError in UploadController#uploadFile You have a nil object when you didn't expect it! You might have expected an instance of ActiveRecord::Base. The error occurred while evaluating nil.[] RAILS_ROOT: ~/rails/upload Application Trace | Framework Trace | Full Trace app/models/data_file.rb:3:in `save' app/controllers/upload_controller.rb:7:in `uploadFile' Request Parameters: {"multipart"=>"true", "commit"=>"Upload", "authenticity_token"=>"82b3eeae67198fb71bb4dea43b1790ac70bda0ae"} Show session dump Response Headers: {"cookie"=>[], "Content-Type"=>"", "Cache-Control"=>"no-cache"} --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---

