roo gem - Getting uninitialized constant Student::Roo error while importing csv file in rails -


i have application on want provide feature import records csv , excel file formats. using roo gem it, @ time of importing gives error "uninitialized constant student::roo".

here code :

student.rb

def self.import(file)   spreadsheet = open_spreadsheet(file)   header = spreadsheet.row(1)   (2..spreadsheet.last_row).each |i|     row = hash[[header, spreadsheet.row(i)].transpose]     product = find_by_id(row["id"]) || new     product.attributes = row.to_hash.slice(*accessible_attributes)     product.save!   end end   def self.open_spreadsheet(file)   case file.extname(file.original_filename)   when ".csv" roo::csv.new(file.path, nil, :ignore)   when ".xls" roo::excel.new(file.path, nil, :ignore)   when ".xlsx" roo::excelx.new(file.path, nil, :ignore)   else raise "unknown file type: #{file.original_filename}"   end end 

student_controller.rb :

def import     student.import(params[:file])     #puts @session[:current_organization_id].inspect     redirect_to students_path, notice: "record imported successfully."   end 

new.html.erb :

<%= form_tag import_students_path, multipart: true %>         <%= file_field_tag :file , :required=> true%> <br/>         <%= submit_tag "import" , :class => "btn btn-primary btn-block" %> <% end %>    

gemfile :

source 'https://rubygems.org' gem 'rails', '4.2.0' gem 'mysql2' gem 'sass-rails', '~> 5.0' gem 'uglifier', '>= 1.3.0' gem 'coffee-rails', '~> 4.1.0' gem 'therubyracer', platforms: :ruby gem 'jquery-rails' gem 'jbuilder', '~> 2.0' gem 'sdoc', '~> 0.4.0', group: :doc gem 'sass', '3.2.19' gem 'bower-rails' gem 'font-awesome-sass' gem 'devise' gem 'roo' group :development, :test     gem "rspec-rails", "~> 2.0"     gem "factory_girl_rails", "~> 4.0"     gem "capybara"     gem "database_cleaner"     gem "selenium-webdriver" end 

student.csv : test data student.

enrollment_no,roll_no,address,father_name 11,21,test,test 17,21,test,test 18,21,test,test 19,21,test,test 20,21,test,test 22,21,test,test 23,21,test,test 24,21,test,test 

first, after @skv comment: correct name csv class roo::csv , not roo::csv.

if error persists, means of roo classes (roo::csv, roo::excel, etc) not defined @ point in student class. means that, while added roo gem gemfile , bundled, need require roo wherever want use gem. mentioned in gem docs.

add require 'roo' top of student.rb file , should work fine:

# student.rb require 'roo'  # <====   class student < activerecord::base   def self.open_spreadsheet(file)     ...   end end 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -