You don't need a gem to add sudomains in Rails.
Here's some code I've sucesffully added into one of my apps.
In your routes.rb
add the following:
constraints subdomain: false do
root to: 'landings#index'
end
constraints subdomain: 'my' do
get '/', to: 'users#show', as: 'app_root'
resources :users
resources :games do
collection do
get :search, to: 'games#search', as: :search
end
end
end
The following gives me:
root GET / landings#index
app_root GET / users#show {:subdomain=>"my"}
users GET /users(.:format) users#index {:subdomain=>"my"}
POST /users(.:format) users#create {:subdomain=>"my"}
new_user GET /users/new(.:format) users#new {:subdomain=>"my"}
edit_user GET /users/:id/edit(.:format) users#edit {:subdomain=>"my"}
user GET /users/:id(.:format) users#show {:subdomain=>"my"}
PATCH /users/:id(.:format) users#update {:subdomain=>"my"}
PUT /users/:id(.:format) users#update {:subdomain=>"my"}
DELETE /users/:id(.:format) users#destroy {:subdomain=>"my"}
search_games GET /games/search(.:format) games#search {:subdomain=>"my"}
games GET /games(.:format) games#index {:subdomain=>"my"}
POST /games(.:format) games#create {:subdomain=>"my"}
new_game GET /games/new(.:format) games#new {:subdomain=>"my"}
edit_game GET /games/:id/edit(.:format) games#edit {:subdomain=>"my"}
game GET /games/:id(.:format) games#show {:subdomain=>"my"}
PATCH /games/:id(.:format) games#update {:subdomain=>"my"}
PUT /games/:id(.:format) games#update {:subdomain=>"my"}
DELETE /games/:id(.:format) games#destroy {:subdomain=>"my"}
The catch with this method is that for subdomains routes, you have to use search_games_path(subdomain: 'mysubdomainname')
or search_games_url (which automatically points to your subdomain)