【发布时间】:2012-11-23 10:22:13
【问题描述】:
我是 Rails 新手,但在使用设计解决 Rails 3 中的路由时遇到了麻烦
当我转到用户页面时,我收到了这个丑陋的错误:http://s9.postimage.org/nlyxhlk5b/Devise_routing.png
在我的路线中
#Resources for users
devise_for :users, :controllers => { :registrations => "registrations" }
resource :users do
get 'welcome'
end
这些是我的用户路线
更新
root / members#welcome
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
我不应该有 2 个用户资源吗?我相信他们可能会以某种方式发生冲突,或者我只是错过了什么?
更新
我忘了提到我正在覆盖默认的设计注册控制器
class RegistrationsController < Devise::RegistrationsController
protected
# Redirect to welcome page after a successful registration
def after_sign_up_path_for(resource)
'/users/welcome'
end
end
【问题讨论】:
-
我不确定您为什么要设置资源:用户执行登录、登录和登录。事实上,除非您覆盖设计控制器,否则您只需要 devise_for :users
-
好吧,我制作了一个用户脚手架,并为用户制作了路线,我不记得他们在哪里,但我只是想确定我使用的是设备的 :) 是的,我正在覆盖设计注册控制器,因为我想路由到我的
welcome页面,而不是成功用户注册时的默认页面 - 使用注册控制器更新帖子 -
你在使用 :confirmable 吗?
-
如果不是,你可以在你的路由中使用它,经过身份验证:user do root :to => 'controller#action' end
-
看看注册控制器的默认行为,在设计github.com/plataformatec/devise/blob/master/app/controllers/… 中创建操作,您应该看到它有自己的未确认帐户路径,可以修改这个并让设计处理为您安排的路线
标签: ruby-on-rails-3 routing devise