在Ruby中组织类和对象?

时间:2011-11-02 06:11:02

标签: ruby-on-rails ruby class object organization

我是Ruby on Rails的初学者。我有一个关于组织对象和类的问题。

我有一个文章类,其中包含一些字段,如作者,关键字,日期等。

问题在于我想组织这些文章对象以便能够集体分析它们。文章来自不同的来源,我希望能够根据来源访问它们。

我猜我可以为ArticleSource创建一个新类,并通过诸如has_one或embeds_one之类的关系将它与Article类相关联。我这样做是对,还是有更好的方法?

提前致谢!

2 个答案:

答案 0 :(得分:0)

我认为你应该在这里研究单表继承。

将Article作为超类保留,并将其作为ExtertArticle(source is expert)和StudentArticle等继承到子类......

参考:http://api.rubyonrails.org/classes/ActiveRecord/Base.html

答案 1 :(得分:0)

我认为has_manybelongs_to会做你想做的事。

在Article表中添加article_source_id列后,您的类将如下所示:

class ArticleSource
  has_many :articles
end

class Article
  belongs_to :article_source
end

然后,您可以使用以下代码集体分析文章:

source = ArticleSource.find_by_name("New York Times");
articles = source.articles