私は、Addresses
,Lists
およびAddressListMemberships
を持っています。多対多接続を削除する適切な方法は何ですか?
この特定のアプリケーションでは、List
が1000を超え、Addresse
が何千もあります。
ユーザーがList
のAddress
を制御できるようにするためのUIページを実装しました。これらのアクションを追加しました...
class ListsController < ApplicationController
# ...
def add_address
@list = List.find(params[:id])
address = Address.find(params[:address_id])
@list.addresses << address unless @list.addresses.include? address
redirect_to(manage_list_addresses_path(@list))
end
def remove_address
@list = List.find(params[:id])
address = Address.find(params[:address_id])
@list.addresses.delete address
redirect_to(manage_list_addresses_path(@list))
end
end
すべてが美しく動作します。
しかし、これらのアクションは、あまりにも多くのコードがあるように見えます。私は、それらを実装するためのより簡潔な、Railsishの方法、特にこのことを推測しています...
@list.addresses << address unless @list.addresses.include? address
あなたは私が扱っているものとは異なる状況を想定しています。はい、多くの場合、チェックボックスは優れた解決策です。私は自分の質問をより明確にしようとします。 – Ethan