Ruby on rails 在Ruby中写入CSV文件时未定义的方法映射
我正在尝试从Rails模型中的字符串将输入表单中的行写入CSV文件:Ruby on rails 在Ruby中写入CSV文件时未定义的方法映射,ruby-on-rails,ruby,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 5,我正在尝试从Rails模型中的字符串将输入表单中的行写入CSV文件: def form_to_csv file = CSV.open('temp.csv', 'w+') do |csv| self.input_data.split("\n").each do |line| csv << line end end input_data_file = InputDataFile.new(file: file)
def form_to_csv
file = CSV.open('temp.csv', 'w+') do |csv|
self.input_data.split("\n").each do |line|
csv << line
end
end
input_data_file = InputDataFile.new(file: file)
self.input_data_file = input_data_file
end
欢迎任何意见 看起来input_data是一个在字符串上调用map的方法 如果不确定发生了什么,可以在
app/models/job\u request.rb:111
中添加pry
或byebug
,然后运行form\u to\u csv
方法,以便在错误点暂停执行
我猜你会对某个变量的值/数据类型感到惊讶…self.input\u data中是什么?它是一根绳子吗?您还缺少一个
end
标记。我认为在写入文件后应该有另一个end
,这样您就可以在第7行使用变量file
?您在哪里关闭|csv |
子句?self.input|u data是一个字符串是什么是整个stacktrace,您必须获得比这一行更多的错误信息。发布完整stacktrace
[FATAL] NoMethodError (undefined method `map' for "one\r":String Did you mean? tap):
[FATAL] app/models/job_request.rb:112:in `block (2 levels) in form_to_csv'
[FATAL] app/models/job_request.rb:111:in `each'
[FATAL] app/models/job_request.rb:111:in `block in form_to_csv'
[FATAL] app/models/job_request.rb:110:in `form_to_csv'
[FATAL] app/controllers/job_requests_controller.rb:21:in `create'