2017-11-25 128 views
0

在我的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?' } %> 

回答

0

您需要创建控制器操作来销毁所有记录。

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' 
+0

我固定的路线补充:ID,在delete_usergroups添加的重定向方法,并修复link_to以包含id。 – Beengie