2017-11-25 121 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