ActiveRecord BelongsToAssociation иногда не разрешает объект - PullRequest
1 голос
/ 15 марта 2011

Итак, у меня есть пара моделей в Rails 2.3.11:

class RememberToken < ActiveRecord::Base
    belongs_to :user
    ...
end

class User < ActiveRecord::Base
    has_many :remember_tokens
    ...
end

И в контроллере я делаю:

tok = RememberToken.find_by_token(token_str)
if tok
    u = tok.user
    ...
end

Когда я иду делатьчто-то с тобой, оказывается, это экземпляр ActiveRecord::Associations::BelongsToAssociation, а не ActiveRecord::Base.

Когда я изменяю код на:

u = User.find(tok.user_id)

, все работает хорошо.Но это не Best Practices в Rails-land.

Еще более досадно, что первый пример дает сбой только в моем контроллере - выполнение того же в скрипте / консоли работает нормально.

Я подозреваю, чтотакое поведение началось, когда мы обновили Rails с 2.3.8 до 2.3.11, но это трудно понять наверняка.

Я полностью сбит с толку этим поведением - какие-либо предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...