域/子域路由和使用命名空间控制器

时间:2010-02-23 18:26:11

标签: ruby-on-rails request

我目前正在将所有子网站和/或cnamed的流量引导到名为external的控制器和名为handler的方法。

这已经非常混乱,我想清理它。我希望所有外部请求都能以正常的方式处理“:controller /:action /:id”但是,我希望这些控制器位于自己的文件夹中,因此我的主控制器没有重叠。 /controllers/external/controller_name.rb

这是我到目前为止所拥有的:

  not_domain_regex = Regexp.new('\A(?!(' + SiteConfig::domain.gsub('.', '\.') + '))', true)
  is_domain_regex = Regexp.new('\A((' + SiteConfig::domain.gsub('.', '\.') + '))', true)
  map.connect(
    '*path',
    :controller => 'external',
    :action => 'handler',
    :conditions => {
    :domain => not_domain_regex
    }
  )
  map.connect(
    '*path',
    :controller => 'external',
    :action => 'handler',
    :conditions => {
    :domain  => is_domain_regex,
    :subdomain => /([a-z0-9\-\_]{1,100}[^www])/i
    }
  )

我完全迷失了。所以我希望有这样的功能:

map.connect(
  ':controller/:action/:id',
  :namespace => 'external',
  :conditions => {
  :domain => not_domain_regex
  }
)

1 个答案:

答案 0 :(得分:0)