def export_no_sdesc(item_no = " ", make = " ", model = " ", list_price = " ", long_desc = " ", global_image_path = " ")
final_image_path = global_image_path + item_no + ".jpg"
final_thumbs_path = global_image_path + "thumbs/" + item_no + ".jpg"
Dir.glob("body.tmp") do |filename|
body = file_as_string(filename)
body = body.gsub("item_no", item_no).gsub("image_path", final_image_path).gsub("image_thumb", final_thumbs_path)
body = body.gsub("part_make", make).gsub("part_model", model).gsub("long_desc", long_desc).gsub("list_price", list_price)
File.open('page_export.html', 'a') do |x|
x.puts body
x.close
end
end
end
Эта функция дает мне возможность. Во-первых, он читает в некоторых строках из текстового файла. Затем он читает в текстовом файле, который является шаблоном для части таблицы HTML. Затем он заменяет определенные ключевые слова в файле шаблона содержимым строк, и, наконец, он перетаскивает все его в новый текстовый файл (page_export.html).Ruby: `gsub ': не может преобразовать nil в String (TypeError)
Проблема в том, что некоторые поля, импортируемые в текстовый файл, пусты или, по крайней мере, я думаю, что это проблема. В любом случае, я получаю эту ошибку:
[email protected]:~/code/ruby/idealm_db_parser$ ruby html_export.rb
html_export.rb:34:in `gsub': can't convert nil into String (TypeError)
from html_export.rb:34:in `export_no_sdesc'
from html_export.rb:31:in `glob'
from html_export.rb:31:in `export_no_sdesc'
from html_export.rb:82
from html_export.rb:63:in `each'
from html_export.rb:63
from html_export.rb:56:in `glob'
from html_export.rb:56
Чтобы исправить это, я не только объявить пробелы в качестве аргумента по умолчанию для каждой строки, а в другой части сценария, я петлевой через каждую строку - и если он пуст, я добавляю пробел. Еще не повезло.
У меня есть функция, почти такая же, как и выше, но она работает с немного другим набором данных - тем, у которого нет пустых строк, и он отлично работает. Я также тестировал код, который добавляет пробелы, и он отлично работает.
Итак, что я делаю неправильно?
спасибо meagar за отображение исправления :) – m4risU
Да, извините, все еще пытаюсь обернуть голову вокруг Markdown ... – eckza