$rails -v Rails 4.2.1@H_301_4@
$ruby -v ruby 2.2.2p95 (2015-04-13 revision > 50295) [x86_64-linux]@H_301_4@
我正在为移动应用程序构建API,该应用程序将具有管理界面.我想做的是使用unicorn(已在我的开发环境中运行)通过Nginx运行它@H_301_4@
我有2个域路由到完全相同的Rails项目.这些域是:api.project.dev和admin.api.project.dev@H_301_4@
我读过这个:
http://guides.rubyonrails.org/routing.html#advanced-constraints@H_301_4@
并尝试:
Separate Domain for Namespaced Routes in Rails 4(查看答案)@H_301_4@
我尝试了其他一些方法来尝试使其正常工作,唯一出现的问题(对于任何子域)是:@H_301_4@
我当前的实现是:@H_301_4@
@H_301_4@
class DomainConstraint
def initialize(domain)
@domains = domain
end
def matches?(request)
@domains.include? request.domain
end
end
和@H_301_4@
@H_301_4@
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
最佳答案
在irc上#RubyOnRails的出色人才的出色帮助下,我找到了解决方案.因此,感谢crankharder和sevenseacat的意见和建议.@H_301_4@
我最终得到的是:@H_301_4@
@H_301_4@
class DomainConstraint
def initialize(domain)
@domains = domain
end
def matches?(request)
@domains.include? request.host
end
end
和:@H_301_4@
@H_301_4@
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