我的应用程序中有一个非常具体的场景,用户必须将REGIONS设置为TERRITORY。
所以在我的路线文件中我声明了嵌套资源:
resource Territory
resource Region
end
在Territory模型中,我有:
class Territory
has_many :regions, :dependent => :destroy
accepts_nested_attributes_for :regions
end
对于这种情况,我需要用户能够通过更新区域模型中的territory_id来重新划分区域之间的区域。
所以,如果我创建一个名为“East”的区域,然后将区域“New York”和“New Jersey”分配给它,我应该能够创建另一个区域,然后将“New York”分配给它并且应用程序应该只将区域的territory_id更改为新的。
所有逻辑都在地域控制器中(我实际上没有区域控制器),有一小组静态可能区域(西班牙省份),用户可以在编辑区域时添加或删除区域。我需要的是,当用户向区域添加区域并且该区域已经分配到另一个区域时,我不想创建新区域,而是希望使用rails来更改区域的territory_id。
每当我尝试这样做时,我都会收到以下错误:
无法为ID = 14
的地区找到ID = 101的地区任何帮助?
答案 0 :(得分:-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