使用子域路由非restful控制器

时间:2013-11-03 04:20:22

标签: ruby-on-rails ruby ruby-on-rails-3 routing

好的我正在建立一个API,我需要路由,所以我可以像这样访问它们:

api.example.com/action

api.example.com/action2

这些是我的API控制器上的非平静操作:

class ApiController < ApplicationController
  def action1
    #code
  end

  def action2
    #code
  end
end

如何路由它们,任何指针?

1 个答案:

答案 0 :(得分:2)

您希望www.domain.comapi.domain.com都指向相同的rails应用。

在您的路径文件中,您需要设置约束以仅在该约束为真时执行一组路径。您要使用的约束只是检查当前请求的子域是否为'api'。这可以通过以下代码段实现:

<强>配置/ routes.rb中:

constraints subdomain: 'api' do
  # Standard Routing
  match '/action1' => 'api#action1'

  # Wildcard Routing
  match '/:action" => 'api#%{action}'
end

请求限制: http://guides.rubyonrails.org/routing.html#request-based-constraints

通配符细分http://guides.rubyonrails.org/routing.html#route-globbing-and-wildcard-segments