p.content
=> "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras gravida quis orci sed pellentesque. Nam ullamcorper. Proin eget dapibus tellus. <br /><br /><iframe title=\"title\" src=\"http://www.youtube.com/embed/yt_video_id\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"\"></iframe>"
Я хотел бы знать, если возможно проверить, существует ли внутри текста p.content
или нет iframe youtube.
Думаю, не так много вариантов; вам нужно проанализировать строку и проверить, является ли разборный объект тем, что вы ожидаете, например:
require 'nokogiri'
fragment = Nokogiri::HTML.fragment(p.content)
fragment.css('iframe[src*="www.youtube.com"]').any?
# => true
fragment.css('iframe[src*="www.google.com"]').any?
# => false
Вы можете проверить, имеет ли строка подстроку, содержащую некоторый текст, с помощью include?
метод:
p.content.include? "iframe"
Вот документы для include?
, http://ruby-doc.org/core-2.1.0/String.html#method-i-include-3F
/iframe/
а затем/src=.+youtube/