2
class IdentitiesController < ApplicationController
  def new
    @identity = Identity.new
    # @identity = env['omniauth.identity']
  end
end

私の登録フォームは次のとおりです。

=simple_form_for( :identity, url: "/auth/identity/register", :html => { id: :signup_form, class: 'form-horizontal' }) do |f|

  = f.error_notification

  .form-inputs
    .control-group
      .controls
        .input-prepend
          span.add-on
            i.icon-user
          input#name placeholder="name" type="text" f.name

    .control-group
      .controls
        .input-prepend
          span.add-on
            i.icon-envelope
          input#email placeholder="email" type="text" f.email 

    .control-group
      .controls
        .input-prepend
          span.add-on
            i.icon-key
          input#password placeholder="password" type="password"

    .control-group
      .controls
        .input-prepend
          span.add-on
            i.icon-key
          input#password_confirmation placeholder="password confirmation" type="password"


  .form-actions
    .control-group
      .controls
        = f.button :submit, :class => 'btn-primary'

私のアイデンティティモデル

class Identity
  include Mongoid::Document
  include OmniAuth::Identity::Models::Mongoid

  field :name,              type: String
  field :email,             type: String
  field :password_digest,   type: String

  validates_presence_of :name
  validates_presence_of :email
  validates_uniqueness_of :email
  validates_format_of :email, :with => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i
  validates_length_of :password, minimum: 8, maximum: 16
end

私は omniauth-identity gem を使用しています。上記のような私のアイデンティティモデル、identities_controller、アイデンティティ/新しいビュー。登録ボタンをクリックするとundefined method 'empty?' for nil:NilClassエラーになります。コンソールと値の投稿を見ました。それが示している

NoMethodError (undefined method `empty?' for nil:NilClass):
  omniauth-identity (1.1.0) lib/omniauth/identity/secure_password.rb:71:in `password='

どうすればこの問題を解決できますか? あなたのアイデアを待っています。前もって感謝します。

4

1 に答える 1