访问其他模型中的方法ruby on rails

时间:2013-11-10 15:11:29

标签: ruby-on-rails ruby rss

在从另一个模型访问方法时遇到一些麻烦。似乎无法修复我的代码。

我的ruby on rails应用程序是一个简单的RSS阅读器。我有两个模型,Feeds和FeedEntries,我试图遍历Feeds中的url并将它们传递给FeedEntries中的一个方法,该方法将对它们进行短语并将它们添加到数据库中。后者正在查找,但无法从我的Feeds模型访问update_from_feed方法,这是我的模型的代码:

class FeedEntry < ActiveRecord::Base
  def self.update_from_feed(feed_url)
    feed = Feedzirra::Feed.fetch_and_parse(feed_url)
    feed.entries.each do |entry|
      unless exists? :guid => entry.id
        create!(
          :name         => entry.title,
          :summary      => entry.summary,
          :url          => entry.url,
          :published_at => entry.published,
          :guid         => entry.id
          )
      end
    end
  end
end

这是我的Feed模型:

class Feed < ActiveRecord::Base
  def self.fetch_all
    feeds.each do |feed|
      FeedEntry.update_from_feed(feed.url)
    end
  end
end

当我跳进控制台尝试运行Feed.fetch_all时,我得到:

NameError: undefined local variable or method `feeds'

我敢打赌,这是一个非常愚蠢的错误,但我无法理解如何修复它?谢谢你的阅读。

1 个答案:

答案 0 :(得分:0)

全部修好了! Feed模型应该是这样的:

class Feed < ActiveRecord::Base
  def self.fetch_all
    Feed.all.each do |feed|
      FeedEntry.update_from_feed(feed.url)
    end
  end
end