Ruby on rails 要动态加入/离开团队的当前用户

Ruby on rails 要动态加入/离开团队的当前用户,ruby-on-rails,ruby,Ruby On Rails,Ruby,实现一个简单的特性:点击一个名为“加入这个团队”的大按钮,允许当前登录的用户——喘息——加入前面提到的团队 下面是我得到的: class User < ActiveRecord::Base #devise code has_many :memberships has_many :teams, through: :memberships end class Membership < ActiveRecord::Base belongs_to :user belongs

实现一个简单的特性:点击一个名为“加入这个团队”的大按钮,允许当前登录的用户——喘息——加入前面提到的团队

下面是我得到的:

class User < ActiveRecord::Base
#devise code  
  has_many :memberships
  has_many :teams, through: :memberships
end

class Membership < ActiveRecord::Base
 belongs_to :user
 belongs_to :team
end

class Team < ActiveRecord::Base
  has_many :memberships
  has_many :users, through: :memberships
  validates :name, uniqueness: true
end
所以,我想用jQuery的方法“PUT”来处理POST请求。这就是我被困的地方。既然我使用了名为memberships的联接表,那么实现此功能的正确方法是什么?我需要一个会员控制器吗?我的团队控制器中是否可以有一种方法允许当前用户与相关团队关联?我是否需要编写自定义方法?它如何与jqueryajax请求联系在一起以确保语法正确

提前谢谢

您可以通过编辑
routes.rb
中的
team
资源向团队添加一个:

resources :team do
  post 'join', on: :member
end
这将允许像
/teams//这样的URL加入

然后,您可以在
TeamController
中创建一个
join
方法,其基本原理是:

def join
  team = Team.find(params[:id])
  membership = Membership.new(team: team, user: current_user)
  current_user.memberships << membership
end
def连接
team=team.find(参数[:id])
成员资格=成员资格。新建(团队:团队,用户:当前用户)
当前用户身份
resources :team do
  post 'join', on: :member
end
def join
  team = Team.find(params[:id])
  membership = Membership.new(team: team, user: current_user)
  current_user.memberships << membership
end