gpt4 book ai didi

ruby-on-rails - 回调到不同模型中的方法

转载 作者:行者123 更新时间:2023-12-04 20:55:27 24 4
gpt4 key购买 nike

我有模型组、成员资格和用户。与 has_many 连接:通过关联。
路线明智,成员资格嵌套在组内。

我想要的是,每当有人加入或离开组(即在创建或销毁成员资格时),启动对组的检查以检查主导语言是什么(这是用户模型中的一个属性)并更新语言Group 模型中的属性。

我在 Group 模型中有一个名为 define_language 的方法,它似乎独立工作。

现在我需要从 Membership 模型中调用这个方法,我想用 来做到这一点。 after_save 回调 ,但我遇到了麻烦 将其引用到(不同的)组模型中的方法 .

我把这个方法放在 Group 模型而不是 Membership 模型中,因为我觉得它在语义上与成员关系没什么关系。这个假设是错误的吗?我将如何以有效的方式解决这个问题?

最佳答案

一种方法是:

class Membership < ActiveRecord::Base
belongs_to :group
before_save :update_group_language

...

private

def update_group_language
self.group.define_language
end
end

我看不出这是如何工作的:
class Membership < ActiveRecord::Base
belongs_to :group
before_save group.define_language
end

问题是belongs_to 仅在第一次加载rails 时由Ruby 评估。

关于ruby-on-rails - 回调到不同模型中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5280350/

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