gpt4 book ai didi

ruby-on-rails - 在 Model.calculate 方法中使用属性?

转载 作者:搜寻专家 更新时间:2023-10-30 22:05:08 24 4
gpt4 key购买 nike

好的,我的模型是这样的:

Team
has_many :users, :through => memberships

User
has_one :user_status

现在在我的团队模型中,我希望能够找到我的 'user_status' 模型的最大 'updated_at' 值。

我试过做类似的事情:

Team
has_many :users, :through => :memberships
has_many :user_statuses, :through => :users

def max_last_updated_status
user_statuses.maximum(:updated_at)
end

但这给了我:

Invalid source reflection macro :has_one for has_many :user_statuses, :through => :users.  Use :source to specify...

所以我想知道是否有更好的方法来做到这一点,我可以只创建一个 User 模型的属性,例如:

def status_updated_at
user_status.updated_at
end

然后将我的团队类更改为:

  def max_last_updated_status
user.maximum(:status_updated_at)
end

?我假设不是,因为 'status_updated_at' 不是真正的列,因此 sql 生成会失败...

如果能从另一个角度看待这个问题,我们将不胜感激。

最佳答案

我会这样做:

团队

has_many :users, :through => memberships

def max_last_updated_status
users.map{|user| user.user_status.updated_at}.max
end

用户

has_one :user_status

max_last_updated_status 方法应该返回团队中用户的最大 updated_at。

关于ruby-on-rails - 在 Model.calculate 方法中使用属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1333696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com