如何编辑涉及嵌套资源的位置?

时间:2014-01-10 19:39:22

标签: ruby-on-rails database nested rails-activerecord

我正在学习嵌套资源,并在尝试编辑事件时收到以下错误。事件资源嵌套在用户资源下。有什么提示吗?

     ActiveRecord::RecordNotFound:
       Couldn't find Event with id=133 [WHERE "user_events"."user_id" = $1]
     # ./app/controllers/events_controller.rb:32:in `edit'
     # ./spec/features/user_edits_reg_info.rb:69:in `block (2 levels) in <top (required)>'

事件控制器

def edit
    @event = current_user.events.find(params[:id])
  end

1 个答案:

答案 0 :(得分:0)

听起来{id = 133的Event不属于current_user,而是属于不同的用户。

假设您在类似于/users/1/events/133/edit的网址上访问此内容,您应该从:user_id参数(我的示例中为1)中找到该用户,而不是使用current_user:< / p>

def edit
  @user = User.find(params[:user_id])
  @event = @user.events.find(params[:id])
end