未定义的方法`销毁'零:NilClass Rails
我有这张表是一个有很多通过关系。未定义的方法`销毁'零:NilClass 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
要销毁此表中的记录,我已经想出了以下方法来完成此操作。
def remove @usergroup = Usergroup.where('user_id = ?', params[:user_id]).where('group_id = ?', params[:group_id]).first.destroy
redirect_to groups_path
end
这是一个表,所以我一定要得到的GROUP_ID并为每个行删除正确的行用户选择USER_ID。
<%= link_to 'Remove', { controller: "groups", action: "remove" }, group_id: @group.id, user_id: user.id, data:
{ confirm: 'Are you sure?' } %>
如果我看源代码,我可以看到每行都获得相应的user_id和group_id。
<a group_id="6" user_id="2" data-confirm="Are you sure?" href="/groups/remove/6">Remove</a>
目前,当我尝试删除这个,我得到以下错误。
undefined method `destroy' for nil:NilClass
我知道,从错误信息,所以没有找到与它的信息任何东西。我在错误信息中也收到了这个。
请求
参数:
{ “ID”=> “6”}
对于我试图删除GROUP_ID组是6然而,在参数它很明显,'id'是6.也许这是一个路由问题?这是我设置的删除记录的当前路线。
get 'groups/remove/:id', to: 'groups#remove'
如果这是一个路由问题,我需要解决什么问题才能成功删除记录?有人可以帮我吗? Rails路由令我感到困惑。
回答:
尝试在大括号内包装各个ID:
<%= link_to 'Remove', { controller: 'groups', action: 'remove', group_id: @group.id, user_id: user.id },
data: { confirm: 'Are you sure?' } %>
如果你设置好的路线,那会是更少的代码:
<%= link_to 'Remove', groups_path(group_id: @group.id, user_id: user.id),
data: { confirm: 'Are you sure?' } %>
以上是 未定义的方法`销毁'零:NilClass Rails 的全部内容, 来源链接: utcz.com/qa/257736.html