0

目標

データベースにシードする必要がある従業員モデルがあります。「登録可能」にすることはできません。「確認可能」である必要はありません。

シード.rbには、次のものがあります。

Employee.destroy_all
Employee.create(:email => "me@company.com", :password => "password", :password_confirmation => "password")

問題

従業員の資格情報でサインインできません。フラッシュメッセージには次のように記載されています。

無効なメールアドレスまたはパスワード。

従業員は間違いなくデータベースにあります。コンソール出力は次のとおりです。

1.9.2p290 :048 > Employee.last
Employee Load (1.0ms)  SELECT "employees".* FROM "employees" ORDER BY "employees"."id" DESC LIMIT 1
=> #<Employee id: 1, email: "me@company.com", encrypted_password: "$2a$10$QElm.sbv47i.F2H8P5pIvejzn4IeQbe3S8Rjvh34jp/g...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: "2012-07-18 16:00:09", updated_at: "2012-07-18 16:00:09"> 

サインインを試みても、従業員レコードの sign_in_count は増加しません。

セットアップ

デバイスのセットアップは正しいはずですが、穴があるかどうか疑問に思っています。

employee.rb で:

devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable

routes.rb で:

devise_for :employees

schema.rb で:

create_table "employees", :force => true do |t|
  t.string   "email",                  :default => "",    :null => false
  t.string   "encrypted_password",     :default => "",    :null => false
  t.string   "reset_password_token"
  t.datetime "reset_password_sent_at"
  t.datetime "remember_created_at"
  t.integer  "sign_in_count",          :default => 0
  t.datetime "current_sign_in_at"
  t.datetime "last_sign_in_at"
  t.string   "current_sign_in_ip"
  t.string   "last_sign_in_ip"
  t.datetime "created_at",                                :null => false
  t.datetime "updated_at",                                :null => false
end

add_index "employees", ["email"], :name => "index_employees_on_email", :unique => true
add_index "employees", ["reset_password_token"], :name => "index_employees_on_reset_password_token", :unique => true

フォーム:

<h2>Sign In</h2
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>

  <%= f.label :email %>
  <%= f.email_field :email %>

  <%= f.label :password %>
  <%= f.password_field :password %>

  <% if devise_mapping.rememberable? -%>
    <fieldset class="checkbox_container">
      <%= f.check_box :remember_me %> <%= f.label :remember_me %>
    </fieldset>
  <% end -%>

  <div class="button_container">
    <%= f.submit "Sign in", :class => "button secondary" %>
  </div>
<% end %>
4

1 に答える 1

1

サーバーを再起動すると問題が解決しました。

于 2012-07-18T17:16:15.800 に答える