ruby-on-rails – 如何在Ruby on Rails中构建多层次的层次结构?
发布时间:2020-12-17 03:16:57 所属栏目:百科 来源:网络整理
导读:rails应用程序包含许多不同的内容页面.页面被组织成称为章节的小组: class Page ActiveRecord::Base attr_accessible: section_id #etc.. belongs_to :sectionendclass Section ActiveRecord::Base attr_accessible :title #,etc... has_many :pagesend 部
rails应用程序包含许多不同的内容页面.页面被组织成称为章节的小组:
class Page < ActiveRecord::Base attr_accessible: section_id #etc.. belongs_to :section end class Section < ActiveRecord::Base attr_accessible :title #,etc... has_many :pages end 部分也需要组织,但最好的方法是什么 – 重用部分本身,或创建一个新的单元模型? 选项1 – 重复使用部分 class Section < ActiveRecord::Base attr_accessible :parent_id :title # etc... has_many :pages belongs_to :parent,class_name: "Section" has_many :children,class_name: "Section",foreign_key: "parent_id" end 选项2 – 新单位模型 class Section < ActiveRecord::Base attr_accessible :title,:unit_id # etc... has_many :pages belongs_to :units end class Unit < ActiveRecord::Base attr_accessible :title # etc... has_many :sections end 方案1的优点是避免了一些重复,如果需要更多级别,可以在将来进行调整.但是,选项2清楚地区分了具有多个页面的章节的角色,其中包括具有多个章节的单元,这可以帮助保持其他代码清晰.哪种方法最好? 更新 选项2 – 对于每个单元,列出所有子部分.然后列出任何不在任何单位的章节. 选项1 – 对于每个父节,列出所有子节.然后列出任何没有父节或子节的节. 解决方法
这真的取决于你想走多远.如果它只是一个额外的层次结构,那么肯定会使用新模型.如果您希望能够达到2级深度,那么一定要选择重复使用部分.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |