我是Ruby on Rails的初学者。我有一个关于组织对象和类的问题。
我有一个文章类,其中包含一些字段,如作者,关键字,日期等。
问题在于我想组织这些文章对象以便能够集体分析它们。文章来自不同的来源,我希望能够根据来源访问它们。
我猜我可以为ArticleSource创建一个新类,并通过诸如has_one或embeds_one之类的关系将它与Article类相关联。我这样做是对,还是有更好的方法?
提前致谢!
答案 0 :(得分:0)
我认为你应该在这里研究单表继承。
将Article作为超类保留,并将其作为ExtertArticle(source is expert)和StudentArticle等继承到子类......
参考:http://api.rubyonrails.org/classes/ActiveRecord/Base.html
答案 1 :(得分:0)
我认为has_many
和belongs_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