Currently I am working on a project in rails 4 in which I have a user-page at example.com/username but it only finds the record if i use username in proper case, how can I p
You can use Arel Tables.
# Suppose the target username in DB is 'FooBAR'.
t = User.arel_table
@user = User.find_by(t[:username].matches 'foobar')
This will find users with usernames like 'FooBar', 'foobar', 'FOOBAR' and so on.
More details here: https://github.com/rails/arel.
Another option could be:
def self.search(query)
    where("lower(name) LIKE lower(?)", "%#{query}%") 
end
This would work in sqlite or in PostgreSQL.
you will have to use something similar to where("username ILIKE ?"). the ILIKE or similar syntax is dependant on your database though.