Ruby on Rails, метод сбора habtm не собирался? - PullRequest
0 голосов
/ 04 марта 2011

Я пытаюсь сделать резервную копию данных в хранилище 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: проекты

Я нахожусь втупик с этим, поскольку я не знаю, почему он просто не будет передавать текущие данные из project.databases.Любое понимание было бы здорово, спасибо!

1 Ответ

0 голосов
/ 04 марта 2011

Хорошо, поэтому я исправил это, выполнив следующие действия:

  • has_many: database_connections
  • has_many: database,: 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
...