Ruby on rails 需要用户登录并定向到localhost:3000/用户(rails应用程序)

Ruby 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

我需要用户登录并定向到localhost:3000/用户。在经历了在线教程之后,我有点迷路了,所以如果有任何帮助,我将不胜感激

routes.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
会话\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”起了作用。我正在缓慢但肯定地绕着轨道转!谢谢你的帮助:)