РЕДАКТИРОВАТЬ : Перед прочтением я полностью согласен с ответом Джеффа Свенсена, я оставлю здесь свой ответ независимо от этого.
Я не совсем уверен, каков ваш внутренний циклfor (rows[3].each
) Поскольку вы не можете преобразовать одну строку в строку, если у вас есть только один URL.Вы можете разделить на **
символы и вернуть массив URL-адресов, но тогда вам все равно нужно удалить лишние двойные кавычки, или вы можете использовать регулярное выражение, например:
#!/usr/bin/env ruby
f = DATA
urls = f.readlines.map do |line|
line[/([^"]+)"\*\*/, 1]
end
urls.compact!
p urls
__END__
name ,option,price, **URL**
"x", "0,0,0,0,0,0", "123.40",**"http://domain.com/xym.jpg"**
"x", "0,0,0,0,0,0", "111.34",**"http://domain.com/yum.jpg"**
Вызовcompact
необходим, потому что map
будет вставлять nil
объекты, когда вы нажмете что-то, что не соответствует этому выражению.Для метода String#[]
см. здесь