我有一个由成员加入的组和用户模型。
当我调用代码时
基团/ show.html.erb
<%= link_to "Add to group", group_path(:group_id => @group.id, :user_id => user.id), :method => :put %>
它调用groups_controller.rb中的update方法
def update
@group = Group.find(params[:id])
@user = User.find(params[:user_id])
if !@group.users.find(@user)
@group.users << @user
end
end
但是引发了一个错误:
GroupsController#update中的ActiveRecord :: RecordNotFound
找不到'id'= 1 [WHERE“membership”“的用户。”group_id“=?]
我正在构建我的第一个rails应用程序,但不知道为什么会发生这种情况。谢谢!
答案 0 :(得分:0)
您的群组路径使用:group_id
,但控制器正在寻找:id
。那些应该可能匹配。
答案 1 :(得分:0)
你有两个错误:
@group
找到params[:group_id]
,因为这就是您要发送的内容。@group.users.find(@user)
尚未与@user
相关联,则@group
会抛出错误,这不是您想要的。如果用户已经不在该群组中,您希望运行@group.users << @user unless @group.users.include? @user
来添加用户。