1

.xlsRuby on Rails を使用してインポートするためのコードをGithubLink-=> https://github.com/bparanj/expからダウンロードしました。

Apache サーバーをセットアップした後、インポートする .xlsx ファイルを選択すると、次のエラー メッセージが表示されます。

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]

メインのproduct.rbファイル

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  

ソースコードはここで入手できます => https://github.com/bparanj/exp

4

0 に答える 0