我正在尝试从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)
self.input_data_file = input_data_file
end
然而我收到错误:
未定义的方法`map&#39; for&#34; ...&#34;:String你的意思是?挖掘
完整错误:
[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'
欢迎任何想法。
答案 0 :(得分:2)
看起来input_data是一个在字符串上调用map的方法。
如果您不确定发生了什么,可以在pry
中添加byebug
或app/models/job_request.rb:111
,然后运行form_to_csv
方法所以它会在错误点暂停执行。
我猜你会对某个变量的值/数据类型感到惊讶......