Rails 3 - вложенная форма и has_many через ассоциацию - PullRequest
1 голос
/ 08 марта 2012

Привет, люди, давно не был здесь. Но я вернулся, потому что мне снова нужна твоя помощь, пожалуйста. У меня есть приложение rails 3.0.9, и я работаю с вложенными формами и has_many через ассоциацию. Когда я создаю экземпляр, он прекрасно работает. Проблемы приходят, когда я пытаюсь редактировать. Вот пример для лучшего объяснения. (имена и атрибуты таблиц только для объяснения)

Настольный клиент

  • ID
  • company_name
  • адрес

Рабочий стола

  • ID
  • first_name
  • фамилия

Таблица контактов

  • ID
  • client_id
  • worker_id

мои модели выглядят так

class Worker < ActiveRecord::Base
  has_many :contacts, :dependent => :destroy
  has_many :clients, :through => :contacts, :foreign_key => 'client_id'
end

class Client < ActiveRecord::Base
  has_many :contacts, :foreign_key => "client_id",:dependent => :destroy
  has_many :workers, :through => :contacts, :foreign_key => 'worker_id'

  accepts_nested_attributes_for :workers, :allow_destroy => false
end

class Contact < ActiveRecord::Base
  belongs_to :worker, :foreign_key => "worker_id"
  belongs_to :client, :foreign_key => "client_id"
end

Затем в моей форме для создания клиента я могу создать много рабочих, и рельсы создают ассоциацию и создают экземпляры для таблицы контактов (используя вложенные формы).

Дело в том, что если я хочу отредактировать клиента, удалив контакт, контакт не удаляется. Как видите, я поместил эту строку в модель клиентов

accepts_nested_attributes_for :workers, :allow_destroy => false

Я установил для allow_destroy значение false, потому что я не хочу удалять самого работника, я просто хочу удалить кортеж контакта.

Кто-нибудь знает, как я могу решить это ?? Надеюсь, вы можете помочь мне ... Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...