gpt4 book ai didi

ruby-on-rails - has_one/has_many rails 与主键以外的备用源 ID 关联

转载 作者:数据小太阳 更新时间:2023-10-29 07:37:18 26 4
gpt4 key购买 nike

我有 3 个模型。

模型A属于模型B,模型B有多个模型C

通过使用 through我可以在模型 A 类中设置 has_many :c,through: :b

现在每当我调用a_instance.cs它会不必要地加入表 B 我想要的是 A 的直接关联& C使用 b_id在 A 和 C 类中。

那么我如何在没有 through 的情况下编写一个 has_one/has_many rails 关联?当源实体和目标实体都具有第三实体的相同 foreign_key 时的子句? (本例为 b_id)

class C
belongs_to :b #b_id column is there in DB
end

class B
has_many :cs
end

class A
belongs_to :b #b_id column is there in DB
has_many :cs , through: :b #This is the association in Question

#WHAT I WANT TO DO. So something in place of primary_key which would fetch C class directly.
has_many :cs ,class_name: 'C',foreign_key: 'b_id',primary_key: 'b_id'
end

最佳答案

一个例子,Teacher和Student模型属于Group,Teacher有很多Student:

class Group < ApplicationRecord
has_many :teachers
has_many :students
end

class Teacher < ApplicationRecord
belongs_to :group
has_many :students, :foreign_key => 'group_id', :primary_key => 'group_id'
end

class Student < ApplicationRecord
belongs_to :group
end

你可以像这样在一个组中检索老师的学生:

teacher = Teacher.find(:teacher_id)
students = teacher.students

关于ruby-on-rails - has_one/has_many rails 与主键以外的备用源 ID 关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52924841/

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