我完全是 Ruby/Rails/AR 菜鸟。我有一种非常基本的数据库模式,我似乎无法找出在 Rails 方式中表示的最佳方式。
Table Post
String title, author
Text content
Timestamp posted
Post parent
这里的想法是顶级帖子的父级将为NULL。每个响应都会有一个父级,这样它们就形成了自然线程。
标题,作者,内容和发布我没有问题,但父位让我绊倒。任何帮助、提示或建议都会很棒!
我完全是 Ruby/Rails/AR 菜鸟。我有一种非常基本的数据库模式,我似乎无法找出在 Rails 方式中表示的最佳方式。
Table Post
String title, author
Text content
Timestamp posted
Post parent
这里的想法是顶级帖子的父级将为NULL。每个响应都会有一个父级,这样它们就形成了自然线程。
标题,作者,内容和发布我没有问题,但父位让我绊倒。任何帮助、提示或建议都会很棒!
您的Post
模型应在顶部附近声明:
belongs_to :parent, :class_name => 'Post'
然后,使用迁移更新您的posts
表,以便每一行都可以跟踪其父行:
add_column :posts, :parent_id, :integer
现在,当您有一个Post
名为 的对象时@post
,您可以使用@post.parent
.
看看这个act_as_tree
插件,它提供了一堆为你管理关系的方法。Railscasts 有一个基于树的导航的截屏视频,值得一看。