0
我有Rails 4應用程序嵌套資源和子(會話)也有與另一個模型(揚聲器)多對多的關係。在哪裏把嵌套的資源刪除多對多
resources :parent do
resources :child
end
class Parent < ActiveRecord::Base
has_many :children
end
class Child < ActiveRecord::Base
belongs_to :parent
has_and_belongs_to_many :speakers
end
class Speaker < ActiveRecord::Base
has_and_belongs_to_many :children
end
我想弄清楚哪個控制器應該有關係(揚聲器)的刪除/添加。我可以在SessionController#destroy中處理這個問題,但是必須處理這種關係的特殊情況(感覺不對)。目前我有一個自定義路由到SessionController#speaker傳遞參數的操作(:add,:delete)。
我保持對關係的雙方的記錄,僅刪除關係
sessions.speakers.delete(speaker)
你覺得是這樣做的最佳方法?
- 請SessionController刪除關係中一種特殊的路由
- 添加到SpeakerController在一種特殊的路由
- 創建一個新的控制器來處理關係
謝謝。我意識到刪除和<<。我喜歡你創建的路線,感覺比傳遞一個額外的參數更好,使用該方法來執行該動作。 – user3241602