2012-12-22 61 views
12

私はRailsの新規インストールがあり、Deviseとの認証を設定しようとしています。私が知る限り、動作するはずの非常に基本的なセットアップがありますが、デフォルトのDeviseサインインフォームでログインしようとするたびに、私はUnauthorizedエラーを受け取ります。 常にRails + Deviseの新規インストールで401権限がありません

User.new({:email=>'[email protected]', :priv_level => 'admin', :password=>'mypassword', :password_confirmation=>'mypassword'}).save 

マイUserモデル::私はそうのようなコンソールにしてテストするためのユーザーを作成したとして、私の資格情報が正しいと確信しています

class User < ActiveRecord::Base 

    # Include default devise modules. Others available are: 
    # :token_authenticatable, :confirmable, 
    # :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable, :confirmable 

    # Setup accessible (or protected) attributes for your model 
    attr_accessible :email, :password, :password_confirmation, :remember_me, :priv_level, :unconfirmed_email 
    # attr_accessible :title, :body 

    has_one :supplier 

end 

マイログ:

Started POST "/admin/user/sign_in" for 127.0.0.1 at 2012-12-22 13:10:56 -0500 
Processing by Admin::SessionsController#create as HTML 
Parameters: {"utf8"=>"✓", "authenticity_token"=>"wYLsalxN9rTv8P8bvYuT0wZcvlFbu6b1SvoCyKtTCII=", "admin_user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Sign in"} 
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."email" = '[email protected]' LIMIT 1 
(0.1ms) begin transaction 
(0.0ms) commit transaction 
Completed 401 Unauthorized in 69ms 

はです私はDeviseから何が失敗しているのかについてもっと多くの情報を得ることができます。コンソールでユーザーを作成すると、フォームとは異なる暗号化が使用されますか?

答えて

24

RTFMではこの不満の練習がうまいレッスンであることが判明しました。それが明確に入門ガイドで行うことを述べているよう...

<p class="notice"><%= notice %></p> 
<p class="alert"><%= alert %></p> 

:私は確認できると工夫を設定していた、と私は私のレイアウトを作成したとき、私は次の行を挿入することを怠っ。これらを挿入すると、「ログインする前にメールアドレスを確認する必要があります」というエラーメッセージが表示されます。私は、ユーザーのためにconfirmed_at = Time.nowを設定コンソールで

、出来上がり、私は今でログインすることができます。私の状況で

+1

'@ user.skip_confirmation!'を試してみると、確認メールが届かないユーザーもいます。 –

+0

ニースのレッスン。私は今日もそれを自分で学びました。 –

0

を、それがこの

によって発生し(401で失敗)前

(成功)した後

resources :users devise_for :users

devise_for :users resources :users

ですので、route.rbで正しい順序を作ってみてください。

関連する問題