私はHTML文書を解析していて、画像srcを置き換えようとしています。それは私がコンソールでそれを試みるときに私が望むことをするようだが、私のモデルではそれを保存していないようだ。今は、私がやっていることが、Railsに保存する方法(私はコンテンツフィールドを更新しようとしていて、外部の画像をローカルのものに置き換えようとしている)やnokogiriを使用しているなら間違っているかどうかはわかりませんが、 set_attribute
メソッドを使用した結果nokogiri replace
それ以外は完全に行います。
before_save :replace_zemanta_images
def replace_zemanta_images
doc = Nokogiri::HTML(content)
unless doc.css('div.zemanta-img').blank?
doc.css('div.zemanta-img img').each do |img|
io = open(URI.parse(img[:src]))
if photos.find_by_data_remote_url(img[:src]).blank?
photo = photos.build(:data => io, :data_remote_url => img[:src])
img.set_attribute('src', photo.data.url(:original)) #doesn't work!
end
end
end
end
パーフェクトに変換することができます!おかげで – holden
私はノコギリがとbodyタグを投げているように見えることに気づきました。どのようにしてそれを防ぐのか? – holden
Nokogiriに入力するHTMLと、 'doc.to_s'を実行することによって得られるHTMLとの間には、しばしば若干の違いがあります。これはパーサーを通過する結果であり、私が知る限り、それを避ける方法はありません。 – mikej