@mrruslan

Как правильно организовать архитектуру?

Есть приложение на Rails. Создал отдельные модели для анонсов, новостей и объявлений. Вопрос в том стоит ли делать три отдельные модели или можно только одну, потому что по сути будут только поля имя и контент? но в дальнейшем возможно придется добавить другие поля, например цена для объявлений и дата или место проведения для анонсов. Как сделать более гибко но и чтобы было по минимуму дублирований?

Также эти модели должны быть привязаны к категориям. Думаю назвать родительские категории Анонсы, Новости, Объявления. И к их потомкам привязать объекты этих трех моделей соответственно. Подкатегории реализую с помощью https://github.com/collectiveidea/awesome_nested_set/
  • Вопрос задан
  • 2226 просмотров
Пригласить эксперта
Ответы на вопрос 2
DelphiST
@DelphiST
RoR Fullstack Developer
Можно оставить каждую модель отдельным классом и использовать concerns.

# app/models/news.rb
class News
  include Entry
end

# app/models/announce.rb
class Announce
  include Entry
end

# app/models/concerns/entry.rb
module Entry
  extend ActiveSupport::Concern
  included do
    belongs_to :category
  end
end
Ответ написан
victorvsk
@victorvsk
Если новости, анонсы и объявления у вас - сущности схожие, то создайте модель Контента и используйте STI
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
05 июл. 2020, в 00:22
4000 руб./за проект
04 июл. 2020, в 23:47
5000 руб./за проект