循环遍历模型中的表列值

时间:2014-03-15 18:42:09

标签: mysql ruby-on-rails ruby ruby-on-rails-4

如何在模型中的特定列中实现数据库表的值的循环?

给出一个模型Hub.rb,这是我的方法:

# Methods
def self.update_feed(feed_url)
    feed = Feedzirra::Feed.fetch_and_parse(feed_url)
    # Updates only the new articles from last run
    updated_feed = Feedzirra::Feed.update(feed)
    add_entries(updated_feed.new_entries) if updated_feed.updated?
end

然后我在我的数据库中有一个名为“feeds”的表,其中包含一个模式:id,name,description,url。

我想要做的是遍历feeds表中“url”字段中的每一行,并在Hub.rb模型中执行。它将是上面显示的函数的外包装,并将feed表中的feeds.url字段传递给Hub.rb方法中的“feed_url”参数。

这样的事情:

# Methods
def self.update_feed
  loop do 
    feed_url = LOOP THROUGH URL COLUMN DATA
    feed = Feedzirra::Feed.fetch_and_parse(feed_url)
    # Updates only the new articles from last run
    updated_feed = Feedzirra::Feed.update(feed)
    add_entries(updated_feed.new_entries) if updated_feed.updated?
  end
end

这样我就可以从终端调用Hub.update_feed,它将遍历我在feed表中列出的所有URL。

1 个答案:

答案 0 :(得分:0)

怎么样:

Feed.where("url IS NOT NULL").each do |f| 
  Hub.update_feed(f.url) 
end