Где разместить код, который создает несколько объектов после того, как один создан - PullRequest
0 голосов
/ 02 марта 2020

Это вопрос о том, как организовать код, я не могу решить, что лучше, и я не нашел ясно, что было бы лучше в следующем случае:

У меня есть модель A. После создать, мне нужно создать 3 модели B, 4 модели C и неопределенное количество моделей D, все они связаны с моделью A. Мой код работает, как и ожидалось, на самом деле вопрос в том, куда мне поместить код, чтобы сделать все это.

На данный момент в действии create контроллера модели A после сохранения модели A у меня есть 4 службы, которые обрабатывают все логи c. Но когда я rails db:seed, мне приходится повторять звонок на эти 4 услуги. Поэтому я испытываю желание поместить эти 4 вызова в after_create обратный вызов для модели А, но не нарушает ли это единую модель ответственности? Кроме того, у меня есть пятая служба, обрабатывающая уведомления, которую я не хочу вставлять в модель обратного вызова, поэтому я не получаю много уведомлений каждый раз, когда я rails db:seed.

Может быть, то, что я Это уже правильно, и я следую лучшим рекомендациям, но я не уверен в этом, и мне нужно подтверждение или мнение от вас, добрые читатели.

PS: извините за английский sh :-)

1 Ответ

0 голосов
/ 03 марта 2020

Вы делаете правильно, потому что с масштабируемостью вашего приложения обратные вызовы становятся головной болью. Маленькая статья, почему лучше избегать обратных вызовов.

http://codeatmorning.com/3-reasons-to-avoid-rails-callbacks/

...