Ruby on Rails,habtm收集方法没有收集?

时间:2011-03-04 10:54:33

标签: ruby-on-rails has-and-belongs-to-many

我试图在删除时将数据备份到yaml商店,如下所示:

DeleteProject.create!(:data => {
  :project => project.attributes, 
  :domains => project.domains.collect(&:attributes), 
  :databases => project.databases.collect(&:attributes)
}.to_yaml)

然而,尽管项目和域数据存储得很好,但数据库总是空白。这种关系是通过

完成的
  • has_and_belongs_to_many:数据库
  • has_and_belongs_to_many:projects

我处于死胡同,因为我不知道为什么它不会传递来自project.databases的当前数据。任何见解都会很棒,谢谢!

1 个答案:

答案 0 :(得分:0)

好的,所以我通过执行以下操作来修复此问题:

  • has_many:database_connections
  • has_many:databases,:through => :database_connections

更新了使用has_many的模型,然后更新了连接表,不再是database_projects,而是更新了database_connections。

class DatabaseConnection < ActiveRecord::Base
  belongs_to :projects, :class_name => "Project",
                        :foreign_key => "project_id"
  belongs_to :databases, :class_name => "Database",
                         :foreign_key => "database_id"
end