2012-12-03 87 views
0

我有子域的路由设置这样路由错误基于铁路环境

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 

显然,这是不实际的尝试和两者都做。有没有人对我做错了什么有什么想法?

回答

0

虽然亚历克斯写的是100%正确的,但比亚历克斯写的还要错误得多。我最终重写了一个大块的路由,并重新组织了所有的控制器路径和控制器名称。我在重新书面方式这一切都从头开始我用下面的链接:

Rails Guides

Railscasts REST API Versioning

1

尝试改变scope :module => 'my', :as => 'my' donamespace :my, path: nil do所以它会在发展模式的工作就像在生产。

+0

无遗憾的是没有。使用'cache_classes = true'的生产设置时,它会返回错误:'未初始化的常量My :: MyController' – Jaijaz

+0

对于我来说,它适用于您提供的配置设置。 Rails 3.2.8 – alex

+0

在对开发环境文件进行更改后,您是否重新启动rails服务器?对我来说,如果我不这样做,但它显然没有采取新的设置。 – Jaijaz