Есть два способа, которые я вижу наиболее подходящими:
Вариант A: Добавить 'системную' Author
запись в БД
Это не ужасная идея, это просто перекладывает бремя на вас, обеспечивая наличие определенных записей в каждой среде. Но вы всегда можете создать эти записи в начальных файлах, если хотите убедиться, что они всегда создаются.
Преимущество по сравнению с вариантом B состоит в том, что вы можете просто использовать стандартные ActiveRecord
запросы, чтобы найти все системные Post
s.
Вариант B: Оставьте ассоциацию ноль и добавьте новый флаг для :created_by_system
Это то, что я бы выбрал. Если система сделала Post
, просто оставьте ссылку на автора незаполненной и установите специальный флаг, чтобы указать, что эта модель была создана внутри.
У вас все еще может быть метод для быстрого получения списка всех просто сделав область видимости:
scope :from_system, -> { where(created_by_system: :true) }
Какой из них вы выберете, я думаю, зависит от того, хотите ли вы иметь возможность запросить Post.author
и получить информацию о Системе. В этом случае вам нужно выбрать вариант A. В противном случае я бы использовал вариант B. Я уверен, что есть и другие способы сделать это, но я думаю, что это имеет смысл.