我正在使用Rails 4.2.5。我正在尝试设置控制器,以便当登录的用户访问/ users / edit时,他们看到我的表单,可以在其中编辑一些个人资料。所以在config / routes.rb我有
resources :users
…
get "users/edit" => "users#edit"
然后在“ app / controllers / users_controller.rb”中,我有
def edit
@user = User.find(session["user_id"])
render 'edit'
end
但是当我在浏览器中访问“ http:// localhost:3000 / users / edit ”时,出现错误
The action 'show' could not be found for UsersController
的确,我的控制器中没有“显示”方法,但是那不是我希望用户使用的方法。我要他们去编辑方法。
问题是您正在将资源路由与自己的编辑方法混合在一起,并且“按指定的顺序匹配轨道路由”,因此它与资源显示路由匹配users/:id
并在那里停止。
您需要将编辑路径移到资源上方。
或者,阅读链接的指南,查看是否可以将编辑作为资源的收集路线以及except
资源编辑方法添加。您可能还需要除show方法之外的其他方法,但是值得一试,看看您的想法。路由是一个重要方面,值得您花时间去理解。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句