Как я могу получить доступ к Ассоциациям ActiveRecord в обратных вызовах класса в направляющих?

В качестве примера кода я предполагаю, что вы используете контроллер, а не API-контроллер (из веб-API).

Ваш контроллер API зависит от конструктора из HttpConfiguration. Контейнер, вероятно, не имеет этого определения для этого типа и, следовательно, не знает, как его решить, и string в сообщении об ошибке должно исходить из этого типа в качестве зависимости. Я рекомендую вам использовать статический класс GlobalConfiguration и получить доступ к свойству Configuration, чтобы получить экземпляр HttpConfiguration. Вы можете абстрагировать его в свойстве, например, для: Контроллеры API) и получить экземпляр HttpConfiguration.

1
задан Kevin Dewalt 21 June 2009 в 21:14
поделиться

1 ответ

Связи вне курса доступны в ваших обратных вызовах. В конце концов, create_after_email - это просто метод. Вы даже можете вызвать его самостоятельно, без использования обратного вызова. ActiveRecord не применяет никаких специальных флагов к методам обратного вызова, чтобы они не работали как любые другие методы.

Также обратите внимание, что вы запускаете запрос User # find напрямую, без использования каких-либо методов ассоциации. Другая причина, по которой функция ассоциации ActiveRecord не должна быть виновной в этом случае.

Причину, по которой вы получаете ошибку, вероятно, следует искать в другом месте. Убедитесь, что self.b_id установлен и ссылается на допустимую запись. Возможно, оно равно нулю или на самом деле нет записи пользователя с таким значением. Фактически, вы не проверяете, возвращает ли запрос запись или ноль: вы предполагаете, что запись с таким значением всегда существует. Вы уверены, что это предположение всегда выполняется?

2
ответ дан 3 September 2019 в 01:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: