1

我在我的應用程序中有一個非常特殊的場景,用戶必須將區域與區域對齊。在Rails中更新嵌套資源更改其父親

在我的路線

所以我的文件中聲明的嵌套的資源:

resource Territory 
    resource Region 
end 

和領土模型我有:

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 = 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

這不是我所需要的。我控制地區管制員中的地區和地區的聯繫。例如,當用戶編輯區域時,他可以添加或刪除區域。 – 2012-03-13 14:10:22