我希望用户通过删除分组来删除用户参加群组的群组。
所以,我尝试在代码下面写,但是当运行离开动作时,它会发生错误
Unknown key: group_id
。但我不知道如何处理它。请帮忙。
提前谢谢。
GroupingsController.rb
def leave
@user = current_user
@group = Group.find(params[:id])
@user.remove(@group)
redirect_to :back , notice: "Destroy!"
end
User.rb
has_many :groups, :through => :groupings,:source => :group
def remove(group)
groupings.find_by_group_id(:group_id => group).destroy
end
# attend method is work correctly.
def attend(group)
groupings.create(:group_id => group)
end
答案 0 :(得分:1)
您已经指定使用group_id(通过说find_by_group_id
) - 因此您无需再将其作为“密钥”传递(例如:group_id =>
)
所以你的代码应该是
def remove(group)
groupings.find_by_group_id(group.id).destroy
end