如何设置路由以从has_many :users 的团队中删除用户



我的teamuser模型之间基本上有以下关系。 # team.rb has_many :users

在团队#show页面上,我有一个用户表,我想包含一个链接来从团队中删除每个用户。我目前不确定应该如何设置路线,因为我以前从未遇到过。

希望得到一些帮助:)提前感谢!

将其添加到您的 routes.rb。

resources :teams do
 resources :users
end

您将获得按team_id作用域的路由

例如:用于删除

delete /teams/:team_id/users/:id

您还可以将用户作为单个资源

资源 :用户

您将获得路线

delete user users/:id

在用户控制器中,添加销毁操作

class UsersController < ApplicationController::Base
  def destroy
    @user = User.find(params[:id])
    if @user.destroy
     flash[:notice] = "User deleted successfully"
    else
     flash[:error] = "Problem deleting user"
    end
    redirect_to teams_path
  end
end

我假设您不想删除用户,只需删除他们与当前团队的隶属关系即可。 我还假设你希望一名球员一次只能成为一支球队的一员。只需将每个链接放在指向用户#更新的团队成员链接旁边即可

class UsersController < ApplicationController::Base
  def update
    user = User.where(:id => params[:id])
    user.update(params[])
    user.save
  end
end

只要您在 routes.rb 文件中说resources :users,您就可以使用它为您制作的默认更新路由。 只要确保你传递给它你想要的新参数(如果你想删除外键,它只会为零)。 您可以使用它来添加、删除或更新模型中的任何列。

最新更新