1

У меня есть очень специфический сценарий в моем приложении, где пользователь должен назначить REGIONS на TERRITORY.Обновление вложенного ресурса в Rails с изменением его родителя

Так что в моих маршрутах файл я объявил вложенную ресурс:

resource Territory 
    resource Region 
end 

И в модели края у меня есть:

class Territory 
    has_many :regions, :dependent => :destroy 
    accepts_nested_attributes_for :regions 
end 

В этом случае мне нужно пользователю, чтобы иметь возможность повторно асинговые регионы между территориями, просто обновив территорию region_id в модели региона.

Итак, если я создам территорию под названием «Восток», а затем присвою ей регионы «Нью-Йорк» и «Нью-Джерси», я смогу создать другую территорию, а затем присвоить ей «Нью-Йорк» и приложение должно только изменить территорию region_id региона на новую.

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

Всякий раз, когда я пытаюсь сделать это я получаю следующее сообщение об ошибке:

Не удалось найти область с ID = 101 для территории с ID = 14

Любая помощь?

ответ

-2
class Region < ActiveRecord::Base 
    belongs_to :territory 
end 

old_territory = Territory.create :name => "East" 
new_territory = Territory.create :name => "other" 
new_york = old_territory.regions.create :name => "New York" 
new_york.update_attributes :territory => new_territory 
+0

Это не то, что мне нужно. Я контролирую объединение территорий и регионов в контроллере территорий. Например, когда пользователь редактирует территории, он может добавлять или удалять из него регионы. –

Смежные вопросы