Итак, у меня есть пара моделей в 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, но это трудно понять наверняка.
Я полностью сбит с толку этим поведением - какие-либо предложения?