ruby-on-rails-3 – 了解Rails ActiveRecord“single model”自
发布时间:2020-12-16 19:44:41 所属栏目:百科 来源:网络整理
导读:我很难理解如何在Rails中实现单个模型自连接. Guide to ActiveRecord Associations section 2.10简要说明了自联接,但并没有提供足够的信息,并且每个例子或文章都引用了不是单一模型自身加入的友情铁道网站示例,如 Rails Guide section 2.10所述. 这个想法是
我很难理解如何在Rails中实现单个模型自连接.
Guide to ActiveRecord Associations section 2.10简要说明了自联接,但并没有提供足够的信息,并且每个例子或文章都引用了不是单一模型自身加入的友情铁道网站示例,如 Rails Guide section 2.10所述. 这个想法是一个has_many和belongs_to本身的模型,而不需要单独的关系表.我需要单独的表的唯一原因是如果您希望关系包含更多的信息而不仅仅是关系.例如“最好的朋友”,“勉强认识他们” 我有一个简单的Post架构: create_table "posts",:force => true do |t| t.datetime "posted" t.string "nick" t.string "title" t.text "content" t.integer "parent_post_id" t.datetime "created_at",:null => false t.datetime "updated_at",:null => false end parent_post_id是其他Post post_id的自引用. posts.rb模型具有定义的关系: class Post < ActiveRecord::Base has_many :replies,:class_name => "Post" belongs_to :parent_post,:class_name => "Post",:foreign_key => "parent_post_id" end 在控制器或视图我希望能够做这样的事情: @posts.each do |post| ... @replies = post.replies @replies.each do |reply| ... end end 或查找帖子的父母: @parent_post = post.parent_post 这可能都是一些语法错误的理解.所以感谢任何对我有一定了解的人.我已经浏览了每个SO和博客文章,没有尝试“指南”中描述的单一模型自引用自连接方法. 任何人提供不指向使用单独关系表的Friendly Friend示例的说明的点. 解决方法
我缺少has_many外键到“parent_post_id”.一旦它的集合,post.replies将通过parent_post_id引用其他Post实例.
posts.rb模型具有定义的关系: class Post < ActiveRecord::Base has_many :replies,:foreign_key => "parent_post_id" belongs_to :parent_post,:foreign_key => "parent_post_id" end 我现在可以创建帖子,将一个parent_post_id分配给不同的帖子,然后再获取所有帖子,这些回复是任何父帖子. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |