ruby-on-rails – 将Devise与资源组合:Rails中的用户
我正在尝试将Devise与RESTful用户资源结合使用routes.rb文件中的以下代码:
resources :users,:only => [:index,:show] devise_for :users 然而,url localhost:3000 / users / sign_up不会进入设计注册页面,而是产生错误“找不到ID = sign_up的用户”,因此它认为url指向的是显示操作用户控制器. devise_for :users resources :users,:show] 现在当你去本地主机:3000 / users / sign_up你确实得到注册页面,并且转到localhost:3000 / users / 1按照预期命中用户控制器的显示动作. 我的问题是:正在改变这样的代码顺序,以便与用户资源一起工作的正确方法?还是有更深层次的错误?我怀疑只是将这两行代码交换在一起不能解决! 解决方法
我在这些情况下的建议是检查耙子路线
在路由中定义路由的顺序重要,因为较早的路由优先. 所以在你的情况下资源:users,:only => [:index,:show]创建了一个指向{:action =>“show”的一个restfull /users/:id(.:format)路由,controller =>“users”} 现在如果你先做设计路由设置,那么devise的路由优先于任何以后指定的路由,并且你会得到预期的行为. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |