Adding own subdomains in routes.rb
Is there something special I need to do for subdomain routing?
The product I'm working on has two special landing pages, one for military and one for civilian:
I've tried following the rails routing docs as follows:
The product I'm working on has two special landing pages, one for military and one for civilian:
I've tried following the rails routing docs as follows:
get '/', to: 'static#mil', constraints: {subdomain: 'mil'}In the console I don't even see the subdomain in the request:
22:19:42 web.1 | Started GET "/" for ::1 at 2020-05-07 22:19:42 -1000
Hey
JP Whitaker
I was able to change things around using subdomains internally to use something like this
I was able to change things around using subdomains internally to use something like this
class MarketingSite
def self.matches?(request)
request.subdomain.blank? || request.subdomain == 'www'
end
end
class App
def self.matches?(request)
request.subdomain.present? && request.subdomain == 'app'
end
endAdd that to the top of the routes file then the remaning stuff i have like this
Rails.application.routes.draw do
# Jumpstart views
if Rails.env.development? || Rails.env.test?
mount Jumpstart::Engine, at: "/jumpstart"
mount LetterOpenerWeb::Engine, at: "/letter_opener"
end
constraints(MarketingSite) do
root to: "static#index"
draw :static
devise_scope :user do
root to: 'users/registrations#new', as: 'new_user_registation'
end
end
unauthenticated :user do
constraints(App) do
devise_scope :user do
root to: 'users/sessions#new', as: ''
end
end
end
constraints(App) do
# Administrate
authenticated :user, lambda { |u| u.admin? } do
namespace :admin do
if defined?(Sidekiq)
require "sidekiq/web"
mount Sidekiq::Web => "/sidekiq"
end
resources :announcements
resources :users
namespace :user do
resources :connected_accounts
end
resources :accounts
resources :account_users
resources :plans
namespace :pay do
resources :charges
resources :subscriptions
end
root to: "dashboard#show"
end
end
devise_for :user,
controllers: {
masquerades: "jumpstart/masquerades",
omniauth_callbacks: "users/omniauth_callbacks",
registrations: "users/registrations"
}
resources :announcements, only: [:index]
resources :api_tokens
resources :accounts do
member do
patch :switch
end
resources :account_users, path: :members
resources :account_invitations, path: :invitations, module: :accounts
end
resources :account_invitations
# Payments
resource :card
resource :subscription do
patch :info
patch :resume
end
resources :charges
namespace :account do
resource :password
end
namespace :users do
resources :mentions, only: [:index]
end
namespace :user, module: :users do
resources :connected_accounts
end
resources :embeds, only: [:create], constraints: {id: /[^\/]+/} do
collection do
get :patterns
end
end
root 'dashboard#show', as: :subdomain_root, only: [:show]
end
match "/404", via: :all, to: "errors#not_found"
match "/500", via: :all, to: "errors#internal_server_error"
endDoing it this way I have it to where I have my main site (marketing) that will just be on domain.com but when they want to sign in or sign up it will go to app.domain.com
Notifications
You’re not receiving notifications from this thread.