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 end
Add 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" end
Doing 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.