私はユーザーとアカウントの2つのモデルを持っていますが、それらはAccountUsersを介して多対多の関係にあります。ユーザーは他のユーザーを自分のアカウントに招待できますが、認証されたユーザーが招待されたユーザー(または共同編集者)を削除できるようにすることもできます。ユーザーオブジェクトではなく、結合テーブルの関連付けまたは行のみを削除したい。そして、これを行う方法、具体的には、ルートを設定し、methodとlink_toを破棄する方法がよくわかりません。
私のメソッドは現在次のようになっています。
def destroy
@account.users.delete(collaborator)
end
私のリンクは次のようになります:
= link_to "Remove collaborator", collaborator, confirm: "You sure?", :method => :delete
これは現在、
undefined method `user_path' for #<#<Class:0x007fe3fc4f2378>:0x007fe3fe718510>
link_toに直接入れようとしまし@account.users.delete(collaborator)
たが、クリックされる前に行が削除されます。
私のルートは現在次のようになっています:
resources :accounts do
resources :projects
resources :invitations
resources :collaborators, :only => [:index]
end
そして、このような私のモデルの関連付け:
# User
has_many :account_users
has_many :accounts, through: :account_users, :dependent => :destroy
# Account
belongs_to :user
has_many :account_users
has_many :users, through: :account_users
私が望むことを達成できるようにするには、どのように、そして何をすべきですか?
破棄アクションが配置されている別のコントローラー(コラボレーター)がないので、ユーザーコントローラーにはありません。
ありがとう。