Ответ 1
Как это работает? Если так почему они спроектировали его таким образом?
Да, приборы не используют обратные вызовы. Я предполагаю, что это по соображениям производительности. Быстрее загружать данные прямо в базу данных без создания экземпляра модели.
Есть ли способ заставить запускать обратных вызовов при загрузке светильники?
Не то, чтобы я знал. У вас есть пара вариантов. Один из них заключается в том, чтобы строить ваши светильники так, как если бы вызывающие вызовы уже срабатывали. То есть вручную создайте данные, которые будут иметь обратные вызовы. Например, если у вас есть обратный вызов, который хеширует пароль пользователя, вам нужно будет хэш-пароль вручную, а затем сохранить этот хэш в приборе.
Второе решение (и настоятельно рекомендуется!) - использовать фабрики. Заводы активируют обратные вызовы и позволяют использовать виртуальные атрибуты и т.д. Это происходит потому, что они каждый раз создают экземпляр модели. Один популярный камень Factory Девушка. Еще одна попытка - Machinist. Я также создал эпизод Railscasts в теме.