2013-03-08 1 views
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-тождественное камень. моя идентификационная модель, идентификатор_контроллер и идентификатор/новый вид, как указано выше. Когда я нажимаю кнопку регистрации, он дает ошибку 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=' 

как я могу решить эту проблему? Я жду ваших идей. Заранее спасибо.

ответ

1

Похоже, что вы можете использовать более старую версию omniauth-identity. На странице omniauth github есть фиксация примерно год назад, которая, похоже, устраняет проблему, с которой вы столкнулись.

https://github.com/intridea/omniauth-identity/commit/7efa2ae9fd44f27df09e167b5a93a62332512e0c

Попробуйте обновить камень до последней версии и посмотреть, если он работает лучше.

Смежные вопросы