Привет, люди, давно не был здесь. Но я вернулся, потому что мне снова нужна твоя помощь, пожалуйста. У меня есть приложение rails 3.0.9, и я работаю с вложенными формами и has_many через ассоциацию. Когда я создаю экземпляр, он прекрасно работает. Проблемы приходят, когда я пытаюсь редактировать. Вот пример для лучшего объяснения. (имена и атрибуты таблиц только для объяснения)
Настольный клиент
Рабочий стола
Таблица контактов
мои модели выглядят так
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, потому что я не хочу удалять самого работника, я просто хочу удалить кортеж контакта.
Кто-нибудь знает, как я могу решить это ?? Надеюсь, вы можете помочь мне ... Спасибо