ruby-on-rails – 如何在Ruby on Rails中构建多层次的层次结构?

ruby-on-rails – 如何在Ruby on Rails中构建多层次的层次结构?,第1张

概述rails应用程序包含许多不同的内容页面.页面被组织成称为章节的小组: class Page < ActiveRecord::Base attr_accessible: section_id #etc.. belongs_to :sectionendclass Section < ActiveRecord::Base attr_accessible :title #, etc @H_404_1@ rails应用程序包含许多不同的内容页面.页面被组织成称为章节的小组:

class Page < ActiveRecord::Base   attr_accessible: section_ID #etc..   belongs_to :sectionendclass Section < ActiveRecord::Base  attr_accessible :Title #,etc...   has_many :pagesend

部分也需要组织,但最好的方法是什么 – 重用部分本身,或创建一个新的单元模型?

选项1 – 重复使用部分
允许Section有子节点和父节.这样,您不需要创建具有与Section类似的字段的另一个模型.有些部分会有很多页面,而其他部分则有很多子部分:

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 – 新单位模型
创建另一个名为Unit的模型来组织这些部分.它将有许多类似的字段,但它将是一个明显独立的实体.

class Section < ActiveRecord::Base  attr_accessible :Title,:unit_ID # etc...   has_many :pages  belongs_to :unitsendclass Unit < ActiveRecord::Base  attr_accessible :Title # etc...   has_many :sectionsend

方案1的优点是避免了一些重复,如果需要更多级别,可以在将来进行调整.但是,选项2清楚地区分了具有多个页面的章节的角色,其中包括具有多个章节的单元,这可以帮助保持其他代码清晰.哪种方法最好?

更新
似乎选项2会有更清晰的代码,例如在浏览所有章节时.是否值得重新使用Sections,如果它会使一些代码更复杂?例如,以下是如何以有条理的方式列出所有部分:

选项2 – 对于每个单元,列出所有子部分.然后列出任何不在任何单位的章节.

选项1 – 对于每个父节,列出所有子节.然后列出任何没有父节或子节的节.

解决方法 这真的取决于你想走多远.如果它只是一个额外的层次结构,那么肯定会使用新模型.如果您希望能够达到2级深度,那么一定要选择重复使用部分. 总结

以上是内存溢出为你收集整理的ruby-on-rails – 如何在Ruby on Rails中构建多层次的层次结构?全部内容,希望文章能够帮你解决ruby-on-rails – 如何在Ruby on Rails中构建多层次的层次结构?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1294436.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存