使用章节和课程模型组织讲座

时间:2015-06-20 12:52:00

标签: ruby-on-rails ruby-on-rails-4 activeadmin

我正在尝试组织我的模型,以便我在讲座中看到.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

有更好的方法吗?主要目的是很好地组织讲座。

1 个答案:

答案 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;在章节表中。如果他们有订单,您也可以使用课程。