【问题标题】:How do I write a has_many :through a scope by a particular ID?如何通过特定 ID 编写 has_many :through 范围?
【发布时间】:2014-08-15 01:52:35
【问题描述】:

我的模型是这样写的:

class Registration < ActiveRecord::Base

  has_many :registered_courses
  has_many :courses,  through: :registered_courses
  has_many :sections, through: :courses

问题在于,如果许多不同的Registration 具有相同的Course。当我写类似的东西时:

Registration.find(x).sections

它从任何注册的相同课程中返回部分。

但我真正想要的是所有部分仅来自该特定注册。也就是说,即使其他注册正在使用相同的课程。

【问题讨论】:

    标签: ruby-on-rails postgresql activerecord scope has-and-belongs-to-many


    【解决方案1】:

    除非您的部分直接属于注册,否则您无法获取属于特定注册的部分。

    【讨论】:

    • 嗯,有道理。那么有没有其他方法可以做到这一点呢?
    • @Trip 你可以在注册和部分之间添加通常的关系 has_many - belongs_to,并在任何事件触发时创建关系,例如课程创建或任何其他,而不是你想要的。当你通过关联获取has_many时,rails只有一种方式工作:1.它通过关联模型找到,2.然后获取目标关联。
    • 我有点理解你的解释,但无法可视化代码部分。我会继续搞砸。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 1970-01-01
    相关资源
    最近更新 更多