I'm new to ROR, so still getting used to the MVC syntax; but think I have a 
simple example here that I hope someone can tell me what I'm doing wrong (& 
maybe help someone else by doing so):

All I'm trying to do is upload a CSV file, then parse each row of data in it 
(the first how contains header data).

Here's the essential part of my view:

<% form_tag ({:action => 'process_file'},
              :multipart => true) do %>
  <%= file_field_tag 'file' %>
  <p>
    <%= submit_tag "Upload" %>
  </p>
  
<% end %>

here's my controller:

def process_file
    post = Upload.import(params[:file])
    flash[:ok] = "data imported"
  redirect_to :action => index
  end

and here's my model, where I'm not parsing anything yet, just putting a stub 
message to the screen (can one do that in a model? not sure...), just to see 
if this part works:

 require 'fastercsv'
...
 def self.import(file)
    datafile = FasterCSV.new(params[:file])
    n = 0
    FasterCSV.foreach(datafile) do |row|
      puts 'on row '.n
      n = n+1
    end
  end


However, the error I get when I submit a file is:

NameError in UploadsController#process_file 

undefined local variable or method `params' for #<Class:0xb6987e78>
...
vendor/rails/activerecord/lib/active_record/base.rb:1667:in `method_missing'
app/models/upload.rb:21:in `import'

Can anyone please help me to spot the error of my ways?

thanks in advance,
rick
app/controllers/uploads_controller.rb:90:in `process_file'




-- 
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.

Reply via email to