摧毁many_to_many关系Rails
问题描述:
在我的groups
控制器中,我调用了usergroups
,它具有以下架构。摧毁many_to_many关系Rails
create_table "usergroups", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
t.bigint "user_id"
t.bigint "group_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["group_id"], name: "index_usergroups_on_group_id"
t.index ["user_id"], name: "index_usergroups_on_user_id"
end
我要摧毁的usergroup
记录在groups
控制器之一。我怎样才能做到这一点?我试着下面的代码,但得到这个错误:
undefined method 'usergroup'
这是在组show.html.erb
查看文件。
<%= link_to 'Remove', usergroup(group_id: @group), method: :delete, data: { confirm: 'Are you sure?' } %>
答
您需要创建控制器操作来销毁所有记录。
show.html.erb
<%= link_to 'Remove', {controller: "groups", action: "delete_usergroups",
group_id: group}, data: { confirm: 'Are you sure?' } %>
groups_controller.rb
def delete_usergroups
Usergroup.where(group_id: params[:id]).delete_all
redirect_to groups_path
end
的routes.rb
get 'groups/delete_usergroups/:id', to: 'groups#delete_usergroups'
我固定的路线补充:ID,在delete_usergroups添加的重定向方法,并修复link_to以包含id。 – Beengie