ActiveRecord BelongsToAssociation有时不会解析为object

时间:2011-03-15 20:30:01

标签: ruby-on-rails ruby activerecord associations

所以,我在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)
一切顺利。但这不是Rails-land中的最佳实践。

更令人沮丧的是,第一个示例仅在我的控制器中失败 - 在脚本/控制台中执行相同操作正常。

我怀疑当我们将Rails从2.3.8升级到2.3.11时就开始了这种行为,但很难确定。

我对这种行为感到困惑 - 有什么建议吗?

0 个答案:

没有答案