Ruby on rails 需要用户登录并定向到localhost:3000/用户(rails应用程序)
我需要用户登录并定向到localhost:3000/用户。在经历了在线教程之后,我有点迷路了,所以如果有任何帮助,我将不胜感激 routes.rbRuby on rails 需要用户登录并定向到localhost:3000/用户(rails应用程序),ruby-on-rails,routes,ruby-on-rails-4,Ruby On Rails,Routes,Ruby On Rails 4,我需要用户登录并定向到localhost:3000/用户。在经历了在线教程之后,我有点迷路了,所以如果有任何帮助,我将不胜感激 routes.rb resources :users resources :sessions, only: [:new, :create, :destroy] root 'static_pages#home' match '/signup', to: 'users#new', via: 'get' match '/si
resources :users
resources :sessions, only: [:new, :create, :destroy]
root 'static_pages#home'
match '/signup', to: 'users#new', via: 'get'
match '/signin', to: 'sessions#new', via: 'get'
match '/signout', to: 'sessions#destroy', via: 'delete'
match '/help', to: 'static_pages#help', via: 'get'
match '/about', to: 'static_pages#about', via: 'get'
match '/contact', to: 'static_pages#contact', via: 'get'
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_back_or user
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
def destroy
sign_out
redirect_to root_url
end
end
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_to user_root_path
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
会话\u controller.rb
resources :users
resources :sessions, only: [:new, :create, :destroy]
root 'static_pages#home'
match '/signup', to: 'users#new', via: 'get'
match '/signin', to: 'sessions#new', via: 'get'
match '/signout', to: 'sessions#destroy', via: 'delete'
match '/help', to: 'static_pages#help', via: 'get'
match '/about', to: 'static_pages#about', via: 'get'
match '/contact', to: 'static_pages#contact', via: 'get'
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_back_or user
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
def destroy
sign_out
redirect_to root_url
end
end
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_to user_root_path
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
class sessioncontroller
您可以尝试以下操作,登录后它将重定向到用户索引页
match 'users' => 'users#index', via: :get, as: :user_root
那就试试这个
会话\u controller.rb
resources :users
resources :sessions, only: [:new, :create, :destroy]
root 'static_pages#home'
match '/signup', to: 'users#new', via: 'get'
match '/signin', to: 'sessions#new', via: 'get'
match '/signout', to: 'sessions#destroy', via: 'delete'
match '/help', to: 'static_pages#help', via: 'get'
match '/about', to: 'static_pages#about', via: 'get'
match '/contact', to: 'static_pages#contact', via: 'get'
class SessionsController < ApplicationController
def new
end
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_back_or user
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
def destroy
sign_out
redirect_to root_url
end
end
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_to user_root_path
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
试试这个:
def create
user = User.find_by(email: params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_back_or users_url # <--- Changes
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
end
def创建
user=user.find_by(email:params[:session][:email].downcase)
if user&&user.authenticate(参数[:会话][:密码])
登录用户
重定向_back_或users _url#match不推荐使用您可以使用get'/signup',到:'users#new'
,任何类型的重定向通常都会在sessioncontroller
(假设从参考资料:sessions
。你愿意共享控制器吗?@muttonlab嗨。我已经添加了sessions控制器,我需要删除一行并用它替换它吗?我确实认为“xxx_url”起了作用。我正在缓慢但肯定地绕着轨道转!谢谢你的帮助:)