Skip to content

Instantly share code, notes, and snippets.

@patrickcurl
Last active December 11, 2015 19:08
Show Gist options
  • Save patrickcurl/4646655 to your computer and use it in GitHub Desktop.
Save patrickcurl/4646655 to your computer and use it in GitHub Desktop.
irb(main):058:0> User.login_method("2223334444") NoMethodError: undefined method `gsub' for nil:NilClass from (irb):9:in `format_mobile' from /home/patrick/Rails/goldengoose/app/models/user.rb:29:in `login_method' from (irb):58 from /home/patrick/.rvm/gems/ruby-1.9.3-p374/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in `start' from /hom…
#error:
# irb(main):058:0> User.login_method("2223334444")
# NoMethodError: undefined method `gsub' for nil:NilClass
# from (irb):9:in `format_mobile'
# from /home/patrick/Rails/goldengoose/app/models/user.rb:29:in `login_method'
# from (irb):58
# from /home/patrick/.rvm/gems/ruby-1.9.3-p374/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in `start'
# from /home/patrick/.rvm/gems/ruby-1.9.3-p374/gems/railties-3.2.11/lib/rails/commands/console.rb:8:in `start'
# from /home/patrick/.rvm/gems/ruby-1.9.3-p374/gems/railties-3.2.11/lib/rails/commands.rb:41:in `<top (required)>'
# from script/rails:6:in `require'
# from script/rails:6:in `<main>'
class User < ActiveRecord::Base
has_secure_password
attr_accessible :address, :city, :email, :email_verified, :first_name, :last_name, :mobile, :mobile_verified, :password, :password_confirmation, :state, :zipcode, :login
#before_validation { |m| m.mobile.gsub!(/\D+/, '').gsub(/^(1|0)+/,'') }
before_validation do
# self.mobile = mobile.gsub!(/\D+/, '').gsub(/^(1|0)+/,'') if attribute_present?("mobile")
self.mobile = format_mobile(mobile)
end
has_many :subscriptions
has_many :actions
has_many :vouchers
validates :email, presence: true, uniqueness: true
validates :mobile, presence: true, uniqueness: true
#validates_uniqueness_of :email
#validates_uniqueness_of :mobile
#validates_presence_of :email
#validates_presence_of :mobile
validates_presence_of :password, :on => :create
def format_mobile(mobile)
mobile.gsub(/\D+/, '').gsub(/^(1|0)+/,'')
end
def self.login_method(login)
if login.include?("@")
self.find_by_email(login)
else
# mobile = self.login.gsub!(/\D+/, '').gsub(/^(1|0)+/,'')
login = format_mobile(login)
self.find_by_mobile(login)
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment