我有两个模型,用户和帐户,它们通过 AccountUsers 建立了多对多的关系。用户可以邀请其他用户加入他们的帐户,但我也希望经过身份验证的用户能够删除受邀用户(或协作者)。我只希望删除连接表中的关联或行,而不是用户对象。而且我不太确定如何做到这一点,特别是我应该如何设置我的路线、销毁方法和 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>
我也尝试@account.users.delete(collaborator)
直接放入我的link_to,但它会在被点击之前删除该行。
我的路线目前看起来像这样:
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
我应该怎么做才能实现我想要的?
不是我有一个单独的控制器(协作者),我的销毁操作所在的位置,它不在我的用户控制器中。
谢谢。