2009-06-05 61 views
1

我在rails中生成一个生成前端和管理控制器的生成器,然后将这些路由添加到路由文件中。我可以在前端与该工作:在自定义生成器中生成嵌套路由

m.route_resources controller_file_name 

,但我无法弄清楚如何为嵌套的管理路径(管理/ controller_file_name)这样做。任何人都知道如何生成这些路线?

回答

3

看着route_resources的代码,它看起来并不像它会做任何事情超出沼气标准map.resources :foos

相反,让我们写我们自己的方法来处理这个问题,在原有基础上

def route_namespaced_resources(namespace, *resources) 
    resource_list = resources.map { |r| r.to_sym.inspect }.join(', ') 
    sentinel = 'ActionController::Routing::Routes.draw do |map|' 
    logger.route "#{namespace}.resources #{resource_list}" 
    unless options[:pretend] 
    gsub_file 'config/routes.rb', /(#{Regexp.escape(sentinel)})/mi do |match| 
     "#{match}\n map.namespace(:#{namespace}) do |#{namespace}|\n  #{namespace}.resources #{resource_list}\n end\n" 
    end 
    end 
end 

我们可以开始这一关为您生成一个本地方法,您现在可以拨打:

m.route_namespaced_resources :admin, controller_file_name