$ rails -v Rails 4.2.1
$ ruby -v ruby 2.2.2p95 (2015-04-13 revision > 50295) [x86_64-linux]
I am building an API for a mobile app, which will have an admin interface to it. What i'm attempting to do, is run this through nginx using unicorn ( which I have running on my dev environment)
I have 2 domains routed to the exact same rails project. These domains are: api.project.dev
and admin.api.project.dev
I've read this: http://guides.rubyonrails.org/routing.html#advanced-constraints
and tried: Separate Domain for Namespaced Routes in Rails 4 ( see answer )
I've tried a few other things to try and get this to work, the only thing that comes up ( for either sub-domain ) is:
Invalid route name, already in use: 'root'
My current implementation of this is:
class DomainConstraint
def initialize(domain)
@domains = domain
end
def matches?(request)
@domains.include? request.domain
end
end
and
require 'domain_constraint'
Rails.application.routes.draw do
resources :statuses
constraints (DomainConstraint.new('api.project.dev')) do
root :to => 'statuses#index'
end
constraints(DomainConstraint.new('admin.api.project.dev')) do
root :to => 'statuses#new'
end
end
keep in mind that the roots are different pages only for now, but ultimately will be completely different systems.
Not quite sure where to go from here in order to get this functioning as I would hope.
With the fine help of the great people in #RubyOnRails
on irc
I got this figured out. So thanks crankharder
and sevenseacat
for your input and advice.
What I ended up with was this:
class DomainConstraint
def initialize(domain)
@domains = domain
end
def matches?(request)
@domains.include? request.host
end
end
and:
require 'domain_constraint'
Rails.application.routes.draw do
constraints DomainConstraint.new('api.project.dev') do
resources :statuses
root :to => 'statuses#index', as: 'api_root'
end
constraints DomainConstraint.new('admin.api.project.dev') do
resources :statuses
root :to => 'statuses#new'
end
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With