我如何获得课程中的所有项目"成分"并用它来创造一种新的成分?我正在使用Nokogiri来上课。我这样做但只能创建一个成分/得到列表中的第一个项目:
require 'nokogiri'
require 'open-uri'
url = "http://damndelicious.net/2017/01/16/turkey-and-spinach-veggie-lasagna/"
doc = Nokogiri::HTML(open(url))
ingredients = Ingredient.create do |ingredient|
ingredient.name = doc.at_css(".ingredient").text
end
这是我尝试从中获取项目的列表示例:
<li class="ingredient">1 tablespoon olive oil</li>
<li class="ingredient">2 cloves garlic, minced</li>
<li class="ingredient">1 onion, diced</li>
<li class="ingredient">2 zucchinis, diced</li>
答案 0 :(得分:3)
.at_css
方法返回唯一的第一个匹配。
要获取与选择器匹配的所有元素,请使用.css
ingredients = doc.css(".ingredient").map do |node|
Ingredient.create!(name: node.text)
end