首先增加路由,

resources :users  do^M
 55     collection do^M
 56       get :download_csv^M
 57       post :import
 58     end^M
 59   end^M

然后增加视图页面

<%= form_tag import_users_path, multipart: true do %>
  <p>导入文件:<%= file_field_tag :file %> <%= submit_tag "导入" %></p>
<% end %>

在路由增加

  def import
    require 'csv'

    tmp = params[:file]
    current_file_name = tmp.original_filename + Time.now.to_i.to_s
    uploaded_file = File.join("public/upload_files", current_file_name)
    File.open(uploaded_file, 'wb') do |f|
      f.write(tmp.read)
    end
    #读取csv文件
    csv_text = File.read(uploaded_file)
    csv = CSV.parse(csv_text,:headers => true)
    csv.each_with_index do |row, index|
      User = User.new
user.email= row['email']
      user.name= row['name]
   #user.manager = row['manager'] 不应该放在csv导入中。
     user.manager = current_manager.email#在application页面已经进行管理员登录的判断
     user.save!
    end
    redirect_to users_url, notice: '操作成功'
  end

然后在视图页面就可以使用导入进行文件数据的传输,完成后就会返回index页面