ruby-on-rails - 我怎样才能 has_and_belongs_to_many 同一模型的多个实例?

标签 ruby-on-rails ruby

基本上,我想完成这样的事情:

Class Node < ActiveRecord::Base
  has_and_belongs_to_many :parents, :class_name=>'Node'
  has_and_belongs_to_many :children, :class_name=>'Node'
end

但它不起作用,而且我不完全确定执行此操作的正确方法。接下来我将尝试显式定义一个连接表并让两者都使用它:如果这是解决方案,该列会被称为“children_id”还是“child_id”?

最佳答案

Class Node < ActiveRecord::Base
  has_and_belongs_to_many :parents, :class_name=>'Node', :join_table => "parents_children", :foreign_key => :child_id, :association_foreign_key => :parent_id
  has_and_belongs_to_many :children, :class_name=>'Node', :join_table => "parents_children", :foreign_key => :parent_id, :association_foreign_key => :child_id
end

请注意,只要您在此处设置适当的外键名称,就可以重命名连接表和外键。

关于ruby-on-rails - 我怎样才能 has_and_belongs_to_many 同一模型的多个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8826831/

相关文章:

ruby-on-rails - 基于多对多关系的 Ruby on Rails 中的复选框形式

ruby-on-rails - Rails 3.2 ajax 示例, Controller 中带有参数

ruby - 文档作为 Ruby 中的测试?

java - 等同于其他语言的 Scala IDE 工作表?

ruby-on-rails - 事件记录 has_many :through remove one associated record

ruby-on-rails - 如何将数据库结构从 db 导出到迁移文件中?

iphone - 在两个不同的系统之间同步对象,最好的方法是什么?

ruby-on-rails - 从 Rails 应用程序提取业务逻辑时,我有哪些选择?

ruby - 通过 C 从 Ruby 下降到 Assembly?

ruby-on-rails - 没有要加载的文件 -- factory_girl