所有我都是新手。 我想销毁在分组表中有group_id的用户。
我的源代码在这里。
GroupsController
def leave
@user = current_user
@group = Group.find(params[:id])
@user.groupings.find_by_group_id(@group).destroy
redirect_to :back , notice: "Destroy!"
end
lists.html.haml
%td= link_to("Destroy",leave_group_path(:id => group),:confirm => "Are you sure",:method => :delete)
当我点击“销毁”按钮时,会发生Couldn't find User with id=1
错误
我想只销毁分组表,但为什么找不到current_user.I不要删除current_user。
错误日志就是
app/controllers/application_controller.rb:6:in `current_user'
并且current_user提供了OmniAuth插件的helper_method。
current_user是在此之后实现的。
class ApplicationController < ActionController::Base
protect_from_forgery
private
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
helper_method :current_user
end
请一些帮助。
提前致谢。
答案 0 :(得分:0)
如果出现could not find user with id=1
错误,则表示没有id = 1的用户。
我们删除/销毁用户。
当你销毁id = 1 的记录并创建另一条记录时,在rails中,新创建的记录 id将不是1 。这可能发生在你身上。
另外,你在模特中的关联就是这个,我猜::
用户模型
class User < ActiveRecord::Base
has_many :groups
#not 分组
end
问题中提到的群组模型#。
class Group < ActiveRecord::Base
belongs_to :user
end
这意味着::
@user.groupings.find_by_group_id(@group).destroy
无法正确。
而是试试这个::
@user.groups.find_by_group_id(@group).destroy
因为,用户有多个组而不是分组。