【问题标题】:Ordering References in a has_many relationship in Rails在 Rails 中的 has_many 关系中排序引用
【发布时间】:2023-04-06 17:09:02
【问题描述】:

我正在为 Rails 应用程序规划我的数据库架构,其中一部分涉及构建各种动态课程。 Schema 看起来有点像这样:

我的问题是,虽然我希望 Problems 和 Snippets 成为它们自己的模型,但我希望每节课都有自己的问题和 sn-ps 顺序。正如在两个不同的课程中可能会共享一些相同的问题和 sn-ps,但顺序不同。

在 Rails 中执行此操作的最佳方法是什么?我设想课程可以保留一系列 id 来跟踪顺序,但这似乎不是很传统。

这有标准吗?

谢谢!

【问题讨论】:

  • 您需要一个在课程和问题之间以及课程和 sn-ps 之间具有has_many: through 关系的中间表。
  • @Emu 您能否详细说明它的工作原理或共享链接?谢谢!
  • @Emu 哦,现在我正在考虑它,这是有道理的,我忘记了我所做的是创建多对多关系。如果您想创建一个答案,我很乐意将其标记为正确!

标签: ruby-on-rails database database-design


【解决方案1】:

您需要一个在课程和问题之间以及课程和 sn-ps 之间具有has_many: through 关系的中间表。

class Lesson < ApplicationRecord
  has_many :lesson_problems, dependent: :destroy
  has_many :problems, through: :lesson_problems
end

class Problem < ApplicationRecord
  has_many :lesson_problems, dependent: :destroy
  has_many :lessons, through: :lesson_problems
end

class LessonProblem < ApplicationRecord
  belongs_to :problems
  belongs_to :lessons
end

在课程问题表中将有一个名为order 的额外列。 课程和片段也是如此。 详情可查here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    相关资源
    最近更新 更多