我似乎无法理解这一点,我已经尝试了几个小时但它似乎仍然无法工作,即使我已经按照教程进行操作适当的。我基本上用自己的会话控制器创建自己的登录验证。它有一个登录表单,然后是一些身份验证步骤。我也使用bcrypt为密码创建哈希,我不知道这是否正在做任何事情,我怀疑它不是,但仍然存在。
以下是我使用的表单:
- provide(:title, "Sign in")
%h1 Log in
.row
.col-md-6.col-md-offset-3
= form_for signin_path do |f|
= f.text_field :email, placeholder: 'Email'
= f.password_field :password, placeholder: 'Password', required: true
= f.submit "Sign in"
%p
New user? #{link_to "Create New Account", new_user_path}
这是我的会议控制员:
class SessionsController < ApplicationController
require 'bcrypt'
def new
end
def create
#google_user = GoogleUser.from_omniauth(env["omniauth.auth"])
#session[:google_user_id] = google_user.id
#redirect_to '/users'
user = User.find_by_email(params[:email])
if user && user.authenticate(params[:password])
session[:user_id] = user.id
redirect_to user, notice: 'Logged In'
else
render :new
end
end
def destroy
#session[:google_user_id] = nil
session[:user_id] = nil
redirect_to root_path, notice: 'Logged Out'
end
end
忽略谷歌的东西,这是我以后必须处理的事情,就像看起来一样。
我也不允许使用任何设计或其他任何使此过程更容易的设备。如果有人可以查看我的代码并告诉我是否有错误,我会很感激,因为我当然不知道还有什么可以解决这个问题。
查询参数:
SELECT users.* FROM users WHERE users.email = 'email'
该查询的问题在于,当我输入时,它没有收到正确的电子邮件,&#34; email@gmail.com"它没有得到它,它只是抓住了符号&#39;电子邮件&#39;
答案 0 :(得分:4)
我相信你的代码中有错误:
public void DragContrinueHandler(object sender, QueryContinueDragEventArgs e)
{
if (e.Action == DragAction.Continue && e.KeyStates != DragDropKeyStates.LeftMouseButton)
{
_dragdropWindow.Close();
}
}
应该是:
user = User.find_by_email(params[:password])
答案 1 :(得分:0)
我认为你必须改变:
user = User.find_by_email(params[:password])
到
user = User.find_by_email(params[:email])
答案 2 :(得分:0)
变化
user = User.find_by_email(params[:password])
到
user = User.where(email: params[:email]).take