Организация классов и объектов в Ruby? - PullRequest
0 голосов
/ 02 ноября 2011

Я новичок в Ruby on Rails. У меня вопрос по организации предметов и классов.

У меня есть класс Article, в котором есть несколько полей, таких как автор, ключевые слова, дата и т. Д.

Проблема в том, что я хочу организовать эти объекты статьи, чтобы иметь возможность анализировать их коллективно. Статьи приходят из разных источников, и я хочу иметь к ним доступ, основываясь на источнике.

Я предполагаю, что могу иметь новый класс для ArticleSource и связать его с классом Article через отношения, такие как has_one или embeds_one. Я делаю это правильно, или есть лучший способ?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 02 ноября 2011

Я думаю has_many и belongs_to сделают то, что вы хотите.

После добавления столбца article_source_id в таблицу Article ваши классы будут выглядеть примерно так:

class ArticleSource
  has_many :articles
end

class Article
  belongs_to :article_source
end

Затем вы можете совместно проанализировать статьи, используя такой код:

source = ArticleSource.find_by_name("New York Times");
articles = source.articles
0 голосов
/ 02 ноября 2011

Я думаю, вы должны посмотреть на наследование одной таблицы здесь.

Сохранить Article как суперкласс и наследовать его в подклассы как ExtertArticle (источник - эксперт) и StudentArticle и т. Д. ...

Ссылка: http://api.rubyonrails.org/classes/ActiveRecord/Base.html

...