1

I downloaded the code for importing .xls using ruby on rails from Github Link-=>https://github.com/bparanj/exp.

After setting up the apache server When we choose the .xlsx file to be imported i get the following error message

ActiveModel::UnknownAttributeError in ProductsController#import


 Extracted source (around line #17):


 def self.import(file)
    spreadsheet = Roo::Spreadsheet.open(file.path)
    header = spreadsheet.row(1)
    (2..spreadsheet.last_row).each do |i|
      row = Hash[[header, spreadsheet.row(i)].transpose]

The main product.rb file

require 'csv'

class Product < ApplicationRecord
  validates_presence_of :price

  def self.to_csv(options = {})
    desired_columns = ["id", "name", "released_on", "price"]
    CSV.generate(options) do |csv|
      csv << desired_columns
      all.each do |product|
        csv << product.attributes.values_at(*desired_columns)
      end
    end
  end

  def self.import(file)
    spreadsheet = Roo::Spreadsheet.open(file.path)
    header = spreadsheet.row(1)
    (2..spreadsheet.last_row).each do |i|
      row = Hash[[header, spreadsheet.row(i)].transpose]
      product = find_by(id: row["id"]) || new
      product.attributes = row.to_hash
      product.save!
    end
  end  

The source code is available here in =>https://github.com/bparanj/exp

Ajay
  • 9
  • 6

0 Answers0