我有像这样的子域路由设置
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 :(得分:1)
尝试将scope :module => 'my', :as => 'my' do
更改为namespace :my, path: nil do
,以便它可以像生产一样在开发模式下工作。
答案 1 :(得分:0)
虽然亚历克斯写的是100%正确的,但是错误远比亚历克斯所写的更多。我最终为路由重写了一大块,并重新组织了所有控制器路径和控制器名称。我从头开始重写所有这些,我使用了以下链接: