似乎无法登录

时间:2017-02-18 00:48:44

标签: ruby-on-rails login

我花了几个小时试图理解会话,我似乎无法登录。我希望有人可以告诉我我做错了什么。

应用程序控制器

protect_from_forgery with: :exception
helper_method :current_user

def current_user
 @current_user ||= User.find(session[:user_id]) if session[:user_id]
end

def authorize
 redirect_to '/' unless current_user
end

会话控制器

class SessionsController < ApplicationController
 def new
 end

 def create
  @user = User.where(email: params[:email]).first
  if @user && @user.authenticate(params[:session][:password])
   session[:user_id] = user.id
   redirect_to '/'
  else
   redirect_to '/sessions/new'
  end
 end

 def destroy
  session[:user_id] = nil
  redirect_to '/'
 end
end

用户控制器

class UsersController < ApplicationController
 before_action :find_user, only: [:show, :edit, :update, :destroy]

 def index
  @user = User.all
 end

 def new
  @user = User.new
 end

 def create
  @user = User.new(user_params)
  if @user.save!
   redirect_to '/'
  else
   render 'new'
  end
 end

 def show
 end

 def edit
 end

 def update
  if @user.update
   redirect_to '/'
  else
   render 'edit'
  end
 end

 def destroy
  @user.destroy
  redirect_to '/'
 end

 private
  def find_user
   @user = User.find(params[:id])
  end

  def user_params
   params.require(:user).permit(:email, :username, :password, :about_me)
 end
end

会话/新

<%= form_tag('/sessions', method: "POST") do %>
 Email: <%= email_field_tag :email %>
 Password: <%= password_field_tag :password %>
 <%= submit_tag 'Submit' %>
<% end %>

路线

root 'users#index'

resources :sessions, only: [:new, :create, :destroy]
resources :users

如果需要其他代码,请告知我们。此外,如果你知道一个更好的约定,为我的用户添加登录,我愿意学习不同的方法。感谢大家帮助理解这个问题。

0 个答案:

没有答案