error in uploading file(help me urgnt)

when i tried to crate an upload file application in rails i am getting
error like this

Template is missing

Missing template app\views\upload\uploadfile.html.erb in view path
app/views

this is ma model

class DataFile < ActiveRecord::Base
  def self.save(upload)
    name = upload['datafile'].original_filename
    directory = "public/data"
    # create the file path
    path = File.join(directory, name)
    # write the file
    File.open(path, "wb") { |f| f.write(upload['datafile'].read) }
  end
end

this is ma view file

<h1>File Upload</h1>
<%= start_form_tag ({:action => 'uploadFile'},
                        :multipart => true) %>
<p><label for="upload_file">Select File</label> :
<%= file_field 'upload', 'datafile' %></p>
<%= submit_tag "Upload" %>
<%= end_form_tag %>

This is ma controller

class UploadController < ApplicationController
  def index
puts 'hiiiiiiiiiii'
     render :file => 'app\views\upload\uploadfile.html.erb'
puts 'hiiiiiiiiiii2'
  end
  def uploadFile
puts 'hiiiiiiiiiii3'
    post = DataFile.save(params[:upload])
    render :text => "File has been uploaded successfully"
  end
end

I think use render :file => ‘uploadfile.html.erb’, as rails would look for the template in your view directory, which is “app/views”,

and if you use render :file => ‘controller/uploadfile.html.erb’, it will look for the template in “app/views/controller/uploadfile.html.erb”, or rails always

assume you have already put your template in the controller’s according view folder

Yong Gu wrote:

I think use *render :file => 'uploadfile.html.erb'*, as rails would look
for
the template in your view directory, which is "app/views",

and if you use render :file => 'controller/uploadfile.html.erb', it will
look for the template in "app/views/controller/uploadfile.html.erb", or
rails always

assume you have already put your template in the controller's according
view
folder

wheen i did that i am getting the error like this

hiiiiiiiiiii3
  SQL (0.5ms) SET client_min_messages TO 'panic'
  SQL (0.5ms) SET client_min_messages TO 'notice'
  SQL (0.6ms) SET client_encoding TO 'unicode'

Processing UploadController#uploadFile (for 127.0.0.1 at 2010-03-29
11:47:28) [POST]
  Parameters: {"commit"=>"Upload",
"authenticity_token"=>"g1vUQZ7QAh7FjfusjbJuh7EBO4UVVFInaYsxzCMK91I=",
"date_file"=>{"upload"=>#<File:/tmp/RackMultipart.3648.0>}}

NoMethodError (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.[]):

Did you add uploadFile to route.rb?

And i think you’d better follow rails’ convention, instead of writing code as like using some other frameworks

hi yong
i got the same proble and solved it ,

you can use in form tag uploadfile instead of uploadFile

and in render file : use #"{root_url}/app/view/--path"

hope you will solve it ..
thanks

rahul