gpt4 book ai didi

ruby-on-rails - 自定义函数后的rails事件记录has_many外键

转载 作者:行者123 更新时间:2023-12-04 11:48:57 25 4
gpt4 key购买 nike

考虑以下模型

class User < AR
has_many :resources
end

class Resource < AR
belongs_to :user
end

我有一个要求,在对其应用某些功能后保存外键。所以resources表中user_id的值与users表中的id不匹配,但可以从id重新计算。

如何定义关联?假设该函数是 dummy_func()。

最佳答案

由于belongs_to返回类实例而不是关联,您可以在 Resource 中定义方法类(class)

class Resource < ApplicationRecord
def user
User.find(user_id)
end

def user=(user)
user_id = user.id
end
end

has_many 类似可以通过在 resources 中创建公共(public)关系来实现用户的结果方法
class User < ApplicationRecord
def resources
Resource.where(user_id: id)
end
end

因此,如果您使用此代码,您可以替换 Resource 中的任何 id模型,行为将与 belongs_to 中的完全相同(也许深度有一些差异)。您可以在 User 中实现非常相似的行为模型,通过自己编写方法。

关于ruby-on-rails - 自定义函数后的rails事件记录has_many外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39236190/

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