I have a written a simple RoR program that accepts a plaintext upload from a user and then emails that file capitalized to an email address aquired through a form. I am trying to utilize ActiveRecord to create a list of past upload , but I receive a NoMethodError whenever I try to save my model. The error follows: <code>NoMethodError in UploadController#upload You have a nil object when you didn''t expect it! You might have expected an instance of Array. The error occurred while evaluating nil.delete RAILS_ROOT: C:/RailsApps/SpecEd1 Application Trace: c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/transactions.rb:124:in `rollback_active_record_state!'' c:/ruby/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/transactions.rb:110:in `save!'' app/controllers/upload_controller.rb:18:in `upload'' Request Parameters: {"Upload"=>"Upload, Capitalize, and Email", "emailaddress"=>"Orbipedis-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org", "datafile"=>#<ActionController::UploadedStringIO:0x3442a34>} Response Headers: {"cookie"=>[], "Cache-Control"=>"no-cache"}</code> And here is my Model: require ''net/smtp'' class DataFile < ActiveRecord::Base def initialize(incoming_file) @file_name = incoming_file.original_filename @content_type = incoming_file.content_type @file = incoming_file end def uploaded_file=(incoming_file) @file_name = incoming_file.original_filename @content_type = incoming_file.content_type @file = incoming_file end def file_name=(new_file_name) write_attribute("file_name", sanitize_filename(new_file_name)) end def save_file File.open("#{RAILS_ROOT}/public/uploaded/#{@file_name}", "wb") do |f| f.write(@file.read) end end def email(address, time) filedata = "" File.open("#{RAILS_ROOT}/public/uploaded/#{@file_name}", "r") do |f| if @content_type === ''text/plain'' lines = f.readlines Net::SMTP.start(''smtp.psu.edu'', 25, ''arl.psu.edu'', ''zkg5001'', ''4b4eebhjkasdfyu'', :plain) do |smtp| smtp.send_message(generate_email(lines, time), ''zkg5001-8DAjSxpRXgY@public.gmane.org'', address) end else Net::SMTP.start(''smtp.psu.edu'', 25, ''arl.psu.edu'', ''zkg5001'', ''4b4eebhjkasdfyu'', :plain) do |smtp| smtp.send_message("file was not plaintext", ''zkg5001-8DAjSxpRXgY@public.gmane.org'', address) end end end end def to_s "File-- name:#{@file_name} type:#{@content_type}" end private def sanitize_filename(file_name) just_filename = File.basename(file_name) just_filename.gsub(/[^\w\.\-]/,''_'') end def generate_email(lines, time) email = "Time of fileprocess is: File processed at: #{time.hour}:#{time.min}:#{time.sec} #{time.mon}/#{time.mday}/#{time.year}\n\n" email << lines.join(''\n'').upcase File.open("C:\\myLog.txt", "w") do |f| f.puts(email) end return email end end And its migration: class DataFiles < ActiveRecord::Migration def self.up create_table :data_files do |t| t.column :file_name, :string t.column :content_type, :string t.column :file, :text end end def self.down drop_table :data_files end end and the controller: require ''date'' class UploadController < ApplicationController protect_from_forgery :only => [:create, :update, :destroy] def index render :file => ''app\views\upload\index.html.erb'' end def upload @myData = DataFile.new(params[''datafile'']) File.open("C:/myLog.txt", "w") do |f| f.puts @myData end #@myData.uploaded_file = params[''datafile''] @myData.save_file @myData.save! timeOfUpload = DateTime.now if(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.match(params[''emailaddress''])) @myData.email(params[''emailaddress''], timeOfUpload) redirect_to :action => ''index'' else redirect_to :action => ''invalid_email'' end end def invalid_email render :file => ''app/views/upload/invalid_email.html.erb'' end def history render :file =>''app/views/upload/history.html.erb'' end end I don''t know why the exception is being thrown or how to fix it. Any assistance would be much appreciated -- View this message in context: http://www.nabble.com/NoMethodError-from-ActiveRecord%3A%3ABase-save-tp18473677p18473677.html Sent from the RubyOnRails Users mailing list archive at Nabble.com. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---