[英]rails devise routing issue
我是Rails的新手,这是我的第一个应用程序。 当前使用rails 3.2.11和设计2.2.3进行身份验证。
问题是登录后,应用程序返回404,并说它无法为“用户”控制器和“显示”操作找到路由。
我有一个用于静态页面的主控制器和一个用于用户的用户控制器。 我已经使用rails generate命令生成了User模型。 我的config / routes.rb如下。
devise_for :users
resources :users
root :to => 'home#index'
在2013年1月29日15:44:25 +0530通过Devise :: SessionsController#create作为HTML参数开始处理127.0.0.1的POST“ / users / sign_in”:{“ utf8” =>“✓”,“ authenticity_token” =>“ cHXjNbgzEx2YsHX / AMb1oxjStY75IVHc9wT40NUOdJM =”,“ user” => {“ email” =>“ r@e.com”,“ password” =>“ [已过滤]”,“ remember_me” =>“ 0”},“ commit“ =>” Signin“}用户负载(0.4ms)选择” users“。* FROM” users“ WHERE” users“。” email“ ='r@e.com'LIMIT 1(0.1ms)开始交易( 0.5ms)UPDATE“ users” SET“ last_sign_in_at” ='2013-01-29 10:06:46.145781',“ current_sign_in_at” ='2013-01-29 10:14:26.063767',“ sign_in_count” = 66,“ updated_at “ ='2013-01-29 10:14:26.067024'WHERE” users“。” id“ = 1(188.0ms)提交事务在365ms内完成404找不到
ActionController::RoutingError (No route matches {:action=>"show", :controller=>"users"}): app/controllers/application_controller.rb:5:in `after_sign_in_path_for'
我已经如下修改了应用程序控制器
def after_sign_in_path_for(resource)
user_url(resource)
end
我想做的是,一旦用户登录,我想显示用户特定的信息。 为此,我修改了after_sign_in_path_for()。 关于如何获得所需结果的任何提示?
我的耙路输出如下
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
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
root / home#index
您需要在application_controller.rb
def after_sign_in_path_for(resource)
user_url(current_user)
end
只需在干净的rails / devise安装上尝试并正常工作即可。 我认为您应该在users_controller.rb
进行一些重定向,因此无法正常工作! 请删除控制器中的所有过滤器或重定向并测试该代码
试一把!
问候!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.