【发布时间】:2012-06-19 05:07:51
【问题描述】:
我有以下课程:
class Group < ActiveRecord::Base
has_many :users
belongs_to :leader, :foreign_key => "leader_id", :class_name => "User"
def get_leader!
if leader.try(:is_active?)
return leader
else
leader = users.active.sort_by { |u| u.completed_sessions }.last
save! # TODO: this does not save the new leader ... no idea why
return leader
end
end
end
当我调用 get_leader 时!方法它总是返回正确的领导者,但无法更新对象的foreign_key 'leader_id'。
从我的实际代码注释中可以看出,我不知道为什么。当我转到控制台并明确设置组的领导者时,一切似乎都正常。
有人知道为什么会这样吗?
(顺便说一句,该方法的目的是在前一个领导者变为非活动状态时更新组的领导者。新领导者是登录次数最多的领导者。)
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 associations