我正在尝试使用Roo将Excel电子表格中的数据导入Rails应用程序中的表(data_points).
我收到错误:
undefined method `fetch_value' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
并且该错误在行引用了我的data_point.rb文件(参见下面的完整代码摘录):
data_point.save!
Run Code Online (Sandbox Code Playgroud)
"应用程序跟踪"说:
app/models/data_point.rb:29:in `block in import'
app/models/data_point.rb:19:in `import'
app/controllers/data_points_controller.rb:65:in `import'
Run Code Online (Sandbox Code Playgroud)
我很困惑,因为我的整个应用程序中的"查找所有"都没有显示fetch_value的实例
这是我的应用程序中的其他代码:
在我的模型中,data_point.rb:
class DataPoint < ActiveRecord::Base
attr_accessor :annual_income, :income_percentile, :years_education
def initialize(annual_income, income_percentile, years_education)
@annual_income = annual_income
@income_percentile = income_percentile
@years_education = years_education
end
def self.import(file)
spreadsheet = open_spreadsheet(file)
header = spreadsheet.row(1)
(2..11).each do |i|
annual_income = spreadsheet.cell(i, 'A')
income_percentile = spreadsheet.cell(i, 'B')
years_education = spreadsheet.cell(i, 'C')
data_point = DataPoint.new(annual_income, income_percentile, years_education)
data_point.save!
end
end
def self.open_spreadsheet(file)
case File.extname(file.original_filename)
when ".xlsx" …
Run Code Online (Sandbox Code Playgroud)