[英]How to pull item from hash array in rails
我们拉取新内容的rails代码如下;
def self.update_from_feed_continuously(feed_url)
puts "I am running"
@all_feeds = Feed.all
for @feed in @all_feeds
sleep 1.5
xml = HTTParty.get(@feed.url).body
@new_feed = Feedjira.parse(xml)
@entry = @new_feed.entries.take(4)
@items = Item.where("feed_id = ?", @feed.id)
i = 0
for @item in @items
@new_item = @entry[i]
@item.title = @new_item.title
@item.description = Nokogiri::HTML.parse(@new_item.summary).css('p').text.strip.truncate(200)
unless Nokogiri::HTML.parse(@new_item.content).css('img').nil?
@item.image = Nokogiri::HTML.parse(@new_item.content).css('img').attr("src")
end
@item.url = @new_item.url
@item.created_at = @new_item.published
@item.save
i = i + 1
end
end
结尾
但是,随着最近的更改,我们在title
不再为@item.title
定义时出现错误,我们知道它是因为@item
为@items
。
我们已经使用控制台尝试执行@item.title.first
或@item[0].title
,但使用@item[i].title
没有
我不太了解使用@feed 的必要性。 相反,如何使用each_with_index
方法进行迭代?
这种方式将为您提供每个 object 阵列中的 position。
例子
@all_feeds.each_with_index do |feed, feed_position_in_array_number|
puts feed
# will return the object
puts feed_position_in_array_number
# as example will return 4 that can help you for done something like @all_feeds[feed_position..]
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.