Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Can';t使用has\u secure\u密码方法登录_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails Can';t使用has\u secure\u密码方法登录

Ruby on rails Can';t使用has\u secure\u密码方法登录,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我正在创建简单的自己的身份验证系统,并帮助自己使用Railscasts。但我不能处理任何问题 我有一个会话控制器 def create user = User.find_by_username(params[:email]) if user && user.authenticate(params[:password]) session[:user_id] = user.id redirect_to root_path, notice:

我正在创建简单的自己的身份验证系统,并帮助自己使用Railscasts。但我不能处理任何问题

我有一个会话控制器

  def create 
    user = User.find_by_username(params[:email])
    if user && user.authenticate(params[:password])
      session[:user_id] = user.id
      redirect_to root_path, notice: "Logged in."
    else
      flash.now.alert = "Email or password is invalid."
      render 'new'
    end
  end
浏览器会一直返回“会话新”页面。 注册时记录:

Started POST "/users" for 127.0.0.1 at 2014-10-05 21:03:38 +0200
Processing by UsersController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"NL7mPvVyPMUyQO/WizmXS3O7q4yrUGtyri5rckOlKAo=", "user"=>{"username"=>"john2", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Create User"}
   (0.1ms)  begin transaction
  User Exists (0.1ms)  SELECT  1 AS one FROM "users"  WHERE "users"."username" = 'john2' LIMIT 1
Binary data inserted for `string` type on column `password_digest`
  SQL (0.2ms)  INSERT INTO "users" ("created_at", "password_digest", "updated_at", "username") VALUES (?, ?, ?, ?)  [["created_at", "2014-10-05 19:03:38.346127"], ["password_digest", "$2a$10$4negYTKUz7vWJV0Af3Ja8u86za/l7k/LANKCVmHKz8zxn4JRjgTgu"], ["updated_at", "2014-10-05 19:03:38.346127"], ["username", "john2"]]
   (186.9ms)  commit transaction
Redirected to http://localhost:3000/
Completed 302 Found in 281ms (ActiveRecord: 187.3ms)
并在尝试登录时登录:

Started POST "/sessions" for 127.0.0.1 at 2014-10-05 21:08:03 +0200
Processing by SessionsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"NL7mPvVyPMUyQO/WizmXS3O7q4yrUGtyri5rckOlKAo=", "username"=>["john2"], "password"=>"[FILTERED]", "commit"=>"Log in"}
  User Load (0.2ms)  SELECT  "users".* FROM "users"  WHERE "users"."username" IS NULL LIMIT 1
  Rendered sessions/new.html.erb within layouts/application (1.1ms)
Completed 200 OK in 61ms (Views: 59.2ms | ActiveRecord: 0.2ms)

我使用
has\u secure\u password
方法。

has\u secure\u password是否需要密码确认以匹配给定密码才能有效?我的意思是登录而不是注册。注册没问题。身份验证方法只需要一个参数