我的team
和user
模型之间基本上有以下关系。
# 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
,您就可以使用它为您制作的默认更新路由。 只要确保你传递给它你想要的新参数(如果你想删除外键,它只会为零)。 您可以使用它来添加、删除或更新模型中的任何列。