Rails模型关联问题,如何自主关联?

发布于 2022-09-02 12:11:49 字数 700 浏览 13 评论 0

我有两张表,一张是User, 里面有id, name, email

另一张是Student, 里面有id, who_id

请问我如何才能建立StudentUser的模型关联。

使我最终可以使用

Student.find(id).name, Student.find(id).email

而不是使用

User.find(student.who_id).name, User.find(student.who_id).email

来获取数据?

PS:基于某种原因,我无法将Student中的who_id改为user_id,所以rails g migration 时使用 user:references此法不行。


class User < ActiveRecord::Base
end

class Student < ActiveRecord::Base
end

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尬尬 2022-09-09 12:11:49
class Student
  belongs_to :user, class_name: 'User', foreign_key: 'who_id'
end

正常情况想获取 name, 需要 Student.find(student_id).user.name。如果想直接获取 user name, 可以给 Student 加 delegate 方法。如

class Student
  belongs_to :user, class_name: 'User', foreign_key: 'who_id'
  delegate :name, to: :user
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文