我正在尝试组织我的模型,以便我在讲座中看到.rb> chapter.rb> lesson.rb。您可以想象,chapter.rb必须按照视图中的顺序以及章节中的嵌套课程进行组织。
这有点令人困惑。到目前为止,我的想法是创建这些模型。
class Lecture
has_many :lessons, through: :chapters
has_many :chapters
end
class Chapter
# lecture_id / name / should I use an integer to order it ?
has_many :lessons
belongs_to :lecture
end
class Lesson
# I added a :step which is an integer in order to order them?
belongs_to :lecture
belongs_to :chapter
end
有更好的方法吗?主要目的是很好地组织讲座。
答案 0 :(得分:0)
您可能需要lambda范围块。试试这个:
class Lecture < ActiveRecord::Base
has_many :chapters, -> { order(number: :asc) }
has_many :lessons, through: :chapters
end
class Chapter < ActiveRecord::Base
belongs_to :lecture
has_many :lessons
end
class Lesson < ActiveRecord::Base
belongs_to :chapter
has_one :lecture, through: :chapter
end
从Deprecated warning for Rails 4 has_many with order
获得这适用于整数列&#39;数字&#39;在章节表中。如果他们有订单,您也可以使用课程。