Ruby on rails Can';我似乎没有登录
我花了几个小时试图理解会话,但似乎无法登录。我希望有人能告诉我我做错了什么 应用程序控制器 会话控制器Ruby on rails Can';我似乎没有登录,ruby-on-rails,login,Ruby On Rails,Login,我花了几个小时试图理解会话,但似乎无法登录。我希望有人能告诉我我做错了什么 应用程序控制器 会话控制器 如果需要其他代码,请告诉我。另外,如果您知道一个更好的约定,以便为我的用户添加登录,我愿意学习不同的方法。感谢大家帮助我们理解这个问题 您可以公开用户模型吗?对于身份验证,您可以使用Desive或clearancegem@uzaif谢谢你的回复。我的用户模型当前为空。我只有一个密码。虽然Desive会更简单更快,但我想学习/理解如何从头开始创建登录。您能帮我调试您编写的代码吗?将此params
如果需要其他代码,请告诉我。另外,如果您知道一个更好的约定,以便为我的用户添加登录,我愿意学习不同的方法。感谢大家帮助我们理解这个问题 您可以公开用户模型吗?对于身份验证,您可以使用Desive或clearancegem@uzaif谢谢你的回复。我的用户模型当前为空。我只有一个密码。虽然Desive会更简单更快,但我想学习/理解如何从头开始创建登录。您能帮我调试您编写的代码吗?将此
params[:email]
更新为params[:session][:email]
这可能会解决您的问题
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