HTML 문서를 파싱하고 이미지 src를 바꾸려고합니다. 그것은 내가 콘솔에서 시도 할 때 내가 원하는 것을 할 것 같지만 내 모델에서는 그것을 저장하지 않는 것 같습니다. 지금, 내가하고있는 일이 Rails에 저장하는 방법에 문제가 있는지 확신 할 수 없습니다 (콘텐츠 필드를 업데이트하고 외부 이미지를 로컬 이미지로 바꾸려고합니다) 또는 nokogiri를 사용하는 경우 저장하지 않습니다. set_attribute
방법을 사용한 결과nokogiri 바꾸기
나머지는 완벽하게 처리합니다.
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
Nokogiri가 및 body 태그를 던지고있는 것처럼 보입니다 ... 존재 여부에 관계없이. 어떻게 그 일을 막으려 는데요? – holden
Nokogiri에 입력하는 HTML과'doc.to_s '를 실행하여 얻는 HTML 사이에는 약간의 차이가 있습니다. 이것은 파서를 통과 한 결과이며 피할 수있는 방법이 없다는 것을 알고 있습니다. – mikej