railsでsliceメソッドを使おうとして、
undefined method `slice!’
こちらのエラーを何度も見て、どうしたら良いかわからない。。
そんな人(過去の自分)に向けて、エラーを抜け出し、sliceを活用でき流ようになったまでの流れを書きました。
railsでsliceのエラーから抜けられない..
railsでスクレイピングした文字列にsliceを使うために以下のコードを記述しました。
※srcの中身の一文字目だけ削除したいのです。

こちらのコードで実行してみると

こんな感じでエラーが出てきて、このエラーから抜けられずにいたのですが、ようやく解決できたので、メモとして残しておきます。
まずはnokogiriに切り替え
Mechanizeを使用したスクレイピングにおいてsliceのエラーを解消しようとしても、なかなか情報がネットになかったのです。。
そこで、ライブラリをMechanizeからNokogiriに変えました。
(Mechanizeの方が記述が楽だと思っていたため、Nokogiriに切り替えるのを2日ほど面倒くさがりました。。しかしこれは本当に時間の無駄だった。。)
Nokogiriに切り替えたもののエラーが続く。。

Nokogiriの記述にはすぐに慣れました。
しかしエラーは続く。。

Did you mean? slice_when
と出てきていますが、、
「slice_when」ではない。。!
エラーの内容を見てみると、どうやらNokogiri、XML、Attrと出てきています。
とりあえず現状、XMLではなくHTMLをパースしているため、XMLでパースさせてみよう。となりました。
XMLのパースに修正して記述したら成功!

※コードは以下の通り
require ‘nokogiri’
f = File.open(“rank_media.html.erb”)
xml_doc = Nokogiri::XML(f)
f.close()
xml_doc.xpath(“//ul[@class=’clearfix’]/li/a/img”).each do |xpath_node|
str = xpath_node.get_attribute(:src)
str.slice!(0)
str1 = (‘https://rank1-media.com’ + str)
puts str1
end
上記が、XMLのパースに修正して記述し直したものです。
こちらで実行したら、無事成功しました!