繁体   English   中英

如何从导轨中的 hash 阵列中拉出项目

[英]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

https://apidock.com/ruby/Enumerator/each_with_index

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM