基于铁路环境的路由错误

时间:2012-12-03 07:54:27

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

我有像这样的子域路由设置

constraints :subdomain => 'my' do
  scope :module => 'my', :as => 'my' do
    scope :module => 'author', :as => 'author' do
      resources :modlette_author
    end
    resources :modlettes
    root :to => 'my#index'
  end
end

当我在开发环境中,尤其是config.cache_classes = false时,my_controller需要位于app/controllers并且定义如下:

class MyController < ApplicationController
  layout "my"
  before_filter :authenticate_user!

  def index

  end
end

然而,在生产config.cache_classes = true栏时希望my_controller位于app/controllers/my并且定义如下:

class My::MyController < ApplicationController
  layout "my"
  before_filter :authenticate_user!

  def index

  end
end

显然,尝试两者兼顾是不切实际的。有没有人对我做错了什么有任何想法?

2 个答案:

答案 0 :(得分:1)

尝试将scope :module => 'my', :as => 'my' do更改为namespace :my, path: nil do,以便它可以像生产一样在开发模式下工作。

答案 1 :(得分:0)

虽然亚历克斯写的是100%正确的,但是错误远比亚历克斯所写的更多。我最终为路由重写了一大块,并重新组织了所有控制器路径和控制器名称。我从头开始重写所有这些,我使用了以下链接:

Rails Guides

Railscasts REST API Versioning