Пропустить проверку электронной почты для omniauth-twitter на devise 2.0

Я использую devise 2.0 и gem omniauth-twitter

Проблема в том, что Twitter не отправляет электронное письмо в ответ, поэтому модельный пользователь моего приложения проверяет, что есть электронное письмо, и я получаю следующую ошибку в обратном вызове:

Email can't be blank

У меня есть это в моей модели user.rb :

#config omniauth twitter
def self.find_for_twitter_oauth(access_token, signed_in_resource = nil)
    data = access_token.extra.raw_info
    if user = User.where(:username => data.screen_name).first
        user
    else
        User.create!(:username => data.screen_name, :password => Devise.friendly_token)
    end
end

, и у меня есть это в моем . ] omniauth_callbacks_controller.rb

  def twitter
    @user = User.find_for_twitter_oauth(request.env["omniauth.auth"], current_user)
    if @user.persisted?
      flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Twitter"
      sign_in_and_redirect @user, :event => :authentication
    else
      # http://stackoverflow.com/questions/7117200/devise-for-twitter-cookie-overflow-error
      session["devise.twitter_data"] = request.env["omniauth.auth"].except('extra')
      redirect_to new_user_registration_url
    end
   end

Я хочу, чтобы пользователь указал адрес электронной почты для отправки бюллетеня, рекламодателя и т. д.

Как я могу решить эту проблему?

Спасибо!

18
задан hyperrjas 19 April 2012 в 10:30
поделиться