I posted this in the Ruby forum but I was told it would be more at home here.
I'm very new to ruby so for all I know this could be ridiculously easy. Thank you in advance for any and all suggestions! Here is the error: /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:2962:in `log_protected_attribute_removal': undefined method `debug' for nil:NilClass (NoMethodError) from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:2946:in `remove_attributes_protected_from_mass_assignment' from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:2739:in `attributes=' from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:2439:in `initialize' from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:726:in `new' from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/base.rb:726:in `create' from ./read_categories.rb:42 from /home/emergenc/RubyGems/gems/parseexcel-0.5.2/lib/parseexcel/worksheet.rb:143:in `each' from /home/emergenc/RubyGems/gems/parseexcel-0.5.2/lib/parseexcel/worksheet.rb:143:in `each' from ./read_categories.rb:41 When I traced it in the code this error is what would be displayed if that debug undefined method error wasn't there: "WARNING: Can't mass-assign these protected attributes: #{attributes.join(', ')}" Here is the relevant code: #!/usr/bin/ruby ENV['GEM_PATH'] = '/home/emergenc/RubyGems:/usr/lib/ruby/gems/1.8' require 'rubygems'; require 'parseexcel' require 'net/ftp' require 'activerecord' require 'csv' #Make Database Connection ActiveRecord::Base.establish_connection(:adapter=>"mysql",:host=>"localhost",:username=>"xxxxxxx",:password=>"xxxxx",:database=>"e_shop") class Category < ActiveRecord::Base end class Subcategory < ActiveRecord::Base end class Item < ActiveRecord::Base end #Open the excel file cat_worksheet = Spreadsheet::ParseExcel.parse("/home/emergenc/DataFiles/categories.xls").worksheet(0) subcat_worksheet = Spreadsheet::ParseExcel.parse("/home/emergenc/DataFiles/subcategories.xls").worksheet(0) #Delete Currently Existing Data Category.connection.execute("TRUNCATE TABLE categories") Subcategory.connection.execute("TRUNCATE TABLE subcategories") Item.connection.execute("TRUNCATE TABLE items") (I CUT OUT IRRELEVANT CODE, LINE 39 Starts with #LOAD, LINE 40 starts with cat_w..., and LINE 41 starts with Category.create to map from the error message) #Load Category Data cat_worksheet.each(1) do |row| Category.create(:description=>(row.at(1).to_s('latin1')).split(/\s+/).each{ |word| word.capitalize! }.join(' '), :id => row.at(0).to_s('latin1')) unless row.nil? end Category.connection.execute("UPDATE categories c SET grouping_id = (SELECT max(id) FROM groupings g where lower(c.description) like concat('%',lower(g.description),'%'))") Category.connection.execute("UPDATE categories c SET grouping_id = (SELECT grouping_id FROM grouping_overrides g where c.description = g.category_desc) WHERE grouping_id is nul$ Category.connection.execute("UPDATE categories c SET grouping_id = (SELECT id FROM groupings g where g.description = 'Other Items') where grouping_id is null") -- Posted via http://www.ruby-forum.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@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---