1
has_many:throughに関連付けられているユーザー、チーム、チームメンバーがいます。has_many:throughアソシエーションを破壊するためのビュー/コントローラ
私はチームからユーザーを削除する機能を追加しようとしています。これは、チームを関連付ける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
ビューは現在、次のようになります。
- @team.members.each do |member|
.member
= link_to member.name, user_path(member)
= button_to "Remove User"
私は、「ユーザーの削除」ボタンの実装を終えたとの助けを探しています。私は破壊する必要のあるTeamMembershipをどのように渡すかわからない。ユーザーコントローラで
感謝。私はすでにteam_membershipsコントローラを持っていたので、2番目のオプションを使用しました。 唯一のことは、ActiveRecord :: RelationではなくTeamMembership自体を渡すことです。 私はteam_membership_path(@ team.team_memberships.where(user_id:member.id).first – HeroicEric
を使っていました。よろしく、 '.first';を忘れました;) – Robin