Rails 版本 4.1.1 database: pg
我把 rails 的版本从 4.0 升到 4.1,在调整项目代码的时候,遇到这样的一个问题
class User < ActiveRecord::Base
has_one :user_info
delegate :total_points, to: :user_info
end
class UserInfo < ActiveRecord::Base
belongs_to :user
end
当我执行下列代码的时候
user = UserInfo.select(:user_id).first.user #=> #<User id: 26, ...... >
神奇的事情就这样出现了
p user.user_info #=> #<UserInfo id: nil, user_id: 26>
因为 user.user_info 返回的是 select 后的对象,user.total_points 会报错:【missing attribute: total_points】
补充:在 rails 4.0 里,user.user_info 不会返回 select 后的对象,而且重新去访问数据库,所以在 rails 4.0 是没问题
求助,求助