1

2つのモデルAとBがあり、それぞれがhas_and_belongs_to_many relationshipともう1つのモデルを持っているとします。つまり、一部のAオブジェクトとBオブジェクトは「接続されています」。2つのActiveRecordオブジェクト間の関係を破壊するためのRailsパターン

この関係を破壊するルートを提供する適切な方法は何でしょうか?私たちがAまたはBを破壊しているわけではないので、AまたはBのコントローラの破壊アクションであることは実際には意味がありません。これを行うための標準的な方法がいくつかありますか?

答えて

0

これは私が何をすべきかです:

コントローラ内で次に

routes.rbを

resources :a do 
    # use member or collection based on your needs 
    member do 
    # member creates a path like: 
    # /a/[:id]/destroy_a_b 
    delete :destroy_a_b 
    end 
# OR 
    collection do 
    # collection creates a path like: 
    # /a/destroy_a_b 
    delete :destroy_a_b 
    end 
end 

def destroy_a_b 
    # with member you can do: 
    @a = A.find(params[:id]) 
    # but caution: you may not want to expose A outside of white-listed params 

    # do your destruction 
end 

あなたはドキュメントで詳細を読むことができます: http://guides.rubyonrails.org/routing.html#adding-more-restful-actions

+0

ありがとう! @aが多くのbを持つことができるかどうか疑問に思っています。削除するbのidをルートに含めるにはどうすればいいですか?(おそらく 'member do'構文を使用しています)。 – Nathan

関連する問題