我已使用bcrypt
设置了注册,登录和注销。我已经设置了如下所示的基本路由,但是使用
“没有路线匹配GET'/注册'”......
任何人,请帮助我感到困惑 - '/注册'应该去会话#new,这是会话中的new.html.erb吗?请澄清......我的控制器可能还有问题,如有必要,我会发布。
感谢您的帮助。
Rails.application.routes.draw do
resources :users, controller: :sessions
root 'users#index'
get '/signup', to: 'users#new'
get '/signup', to: 'users#update'
post '/signup', to: 'users#create'
get '/login', to: 'sessions#new'
post '/login', to: 'sessions#create'
get '/logout', to: 'sessions#destroy'
end
答案 0 :(得分:0)
要创建单一资源,您必须指定:
HTTP动词 - 路径 - 控制器#动作
e.g。 get '/signup', to: 'controller#action'
您需要知道负责创建新用户的控制器和操作是什么,然后替换 controller#action 。
有关路线的详细信息,请查看rails routing。
答案 1 :(得分:0)
看,如果你使用resources :users
,那么你不需要在routes.rb
文件上再次声明这些行
get '/signup', to: 'users#new'
get '/signup', to: 'users#update'
post '/signup', to: 'users#create'
因为resources :users
提供所有这些,如
resources :users
然后rake routes
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
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
此new_user_path
表单的Signup
和users_path
post
方法是用户创建路由,因此对于注册,您必须使用users
控制器。
与使用sessions
后login
和resources :sessions
相同,而不是使用您的三行,您可以获得rake routes
sessions GET /sessions(.:format) sessions#index
POST /sessions(.:format) sessions#create
new_session GET /sessions/new(.:format) sessions#new
edit_session GET /sessions/:id/edit(.:format) sessions#edit
session GET /sessions/:id(.:format) sessions#show
PATCH /sessions/:id(.:format) sessions#update
PUT /sessions/:id(.:format) sessions#update
DELETE /sessions/:id(.:format) sessions#destroy
登录时,您可以使用sessions
控制器,sessions
仅限create
和destroy
您可以更具体地使用sessions
路线,例如编辑{{1}路线
sessions
您现在只能获得resources :sessions, only: [:new, :create, :destroy]
的三条路线,例如sessions
,new
& create
destroy
注册表单 sessions POST /sessions(.:format) sessions#create
new_session GET /sessions/new(.:format) sessions#new
session DELETE /sessions/:id(.:format) sessions#destroy
和登录表单 users/new.html.erb
您可以按照Michael Hartl
教程了解基本身份验证。