在为我的网站处理会话功能时,我在会话视图中遇到了以下错误
这是我的会话控制器的以下代码:
class SessionsController < ApplicationController
def new
@user = User.new
end
def create
@user = User.find_by(email: params[:user][:email])
if @user && @user.authenticate(params[:user][:password])
session[:user_id] = @user.id
redirect_to @user
else
flash[:notice] = "Failed to login, please try again"
render 'new'
end
end
def destroy
session[:user_id] = nil
redirect_to root_url
end
end
我的会话帮助方法:
module SessionsHelper
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
def logged_in?
!!current_user
end
end
和观点:
<h1>Log In</h1>
<%= form_for(@user, url: login_path) do |f|%>
<% if flash[:notice] %>
<div class="notice"><%= flash[:notice] %></div>
<% end %>
<%= f.label :email %>
<%= f.text_field :email%><br>
<%= f.label :password %>
<%= f.password_field :password%><br>
<%= f.submit "Log In", class: "btn btn-primary", style: "width: 200px" %>
<%end%>
我的用户注册路径正常工作并创建用户类的实例。当用户填写登录表单并点击提交按钮时会发生错误,然后提交按钮会将其重定向到他们的个人资料。谢谢你的帮助。
答案 0 :(得分:0)
改变这个:
while(Boolean.FALSE.equals(mysqlStatus)) //also handle NULL
答案 1 :(得分:0)
class SessionsController < ApplicationController
def create
@user = User.find_by(email: params[:user][:email])
@user = User.new if @user.blank?
##rest of your logic comes here
end
end
希望它有所帮助!!