So on a new project we are working on we have a need for a user to be able to login via either their "Login" or "Mobile" number. Now we are using the Authlogic gem which is a great gem and comes with all default methods for login etc and allows you to customise this very easily.

So firstly you need to add the following to your UserSession model. What this does is overwrite the default login method with the one we are defining below called "find_by_username_or_mobile".

class UserSession < Authlogic::Session::Base
  find_by_login_method :find_by_username_or_mobile

Then in your user model its as simply as creating the class method for login. Now of course the password is still apart of the login process but we only wanted to allow users to either login via their login or mobile so no need to change the password methods.

class User < ActiveRecord::Base
  def self.find_by_username_or_mobile(login)
    find_by_login(login) || find_by_mobile(login)

So give it a try and let us know how you go hope this helps