1
has_many : through와 연결된 사용자, 팀 및 팀 구성원이 있습니다.View/Controller for has_many : through Association
팀에서 사용자를 삭제하는 기능을 추가하려고합니다. 팀을 연관시키는 TeamMembership 모델을 파괴해야합니다. 다음과 같이
내 모델은 다음과 같습니다
는# models/team.rb
class Team < ActiveRecord::Base
has_many :team_memberships, :dependent => :destroy
has_many :members, :through => :team_memberships
end
# models/user.rb
class User < ActiveRecord::Base
has_many :team_memberships
has_many :teams, :through => :team_memberships
end
# models/team_membership.rb
class TeamMembership < ActiveRecord::Base
belongs_to :team
belongs_to :member, class_name: 'User', foreign_key: 'user_id'
end
뷰는 현재 다음과 같습니다 : I는 "사용자 제거"버튼의 구현을 마무리 도움을 찾고 있어요
- @team.members.each do |member|
.member
= link_to member.name, user_path(member)
= button_to "Remove User"
. 나는 파괴해야 할 팀원을 어떻게 넘겨 줄지 잘 모르겠습니다. 사용자 컨트롤러에서
감사합니다. 이미 team_memberships 컨트롤러가 있었기 때문에 두 번째 옵션을 사용했습니다. 유일한 것은 ActiveRecord :: Relation이 아닌 TeamMembership 자체를 전달하는 것입니다. 그래서 team_membership_path (@ team.team_memberships.where (user_id : member.id) .first – HeroicEric
괜찮 았어, 맞아, '.first'; – Robin