1

私は、ユーザーが地域をTERRITORYに割り当てなければならないアプリケーションで非常に特殊なシナリオを持っています。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を新しい領域にのみ変更する必要があります。

すべてのロジックは地域コントローラにあります(私は実際にリージョンコントローラを持っていません)。可能な地域(スペインの州)の小さな静的なセットがあり、ユーザーは地域編集時にリージョンを追加または削除できます。私が必要とするのは、ユーザーが地域を地域に追加し、この地域が既に別の地域に割り当てられている場合、新しい地域を作成する代わりに、その地域のterritory_idを変更することです。

私はそれをしようとするたびに私を取得、次のエラー:

ID = 14

どれでも助けを借りて、地域のためにID = 101でリージョンを見つけることができませんでしたか?私は必要なものではありません

答えて

-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

。私は、領土管理者の領土と地域の関係を管理しています。たとえば、ユーザーが地域を編集する場合、地域を追加または削除することができます。 –