Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 更新Rails中的嵌套资源更改其父资源_Ruby On Rails_Ruby On Rails 3_Activerecord_Nested Attributes - Fatal编程技术网

Ruby on rails 更新Rails中的嵌套资源更改其父资源

Ruby on rails 更新Rails中的嵌套资源更改其父资源,ruby-on-rails,ruby-on-rails-3,activerecord,nested-attributes,Ruby On Rails,Ruby On Rails 3,Activerecord,Nested Attributes,在我的应用程序中,我有一个非常具体的场景,用户必须将区域指定给一个区域 因此,在我的routes文件中,我声明了嵌套资源: resource Territory resource Region end 在Territory模型中,我有: class Territory has_many :regions, :dependent => :destroy accepts_nested_attributes_for :regions end 对于这种情况,我需要用户能够通

在我的应用程序中,我有一个非常具体的场景,用户必须将区域指定给一个区域

因此,在我的routes文件中,我声明了嵌套资源:

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更改为新的区域

所有的逻辑都在Territions controller(我实际上没有regions controller)中,有一个小的静态区域集(西班牙省份),用户可以在编辑territory时添加或删除区域。我需要的是,当用户将一个区域添加到一个区域,并且这个区域已经被分配到另一个区域,而不是创建一个新的区域时,我希望rails更改该区域的区域id

每当我尝试这样做时,都会出现以下错误:

对于ID=14的区域,找不到ID=101的区域


有什么帮助吗?

那不是我需要的。我在区域控制器中控制区域和区域的关联。例如,当用户编辑区域时,他可以从中添加或删除区域。
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