Ruby on rails 在自定义生成器中生成嵌套管线

Ruby on rails 在自定义生成器中生成嵌套管线,ruby-on-rails,code-generation,routes,generator,Ruby On Rails,Code Generation,Routes,Generator,我正在rails中构建一个生成器,生成一个前端和管理控制器,然后将路由添加到路由文件中。我可以让前端处理以下内容: m.route_resources controller_file_name 但是我不知道如何对嵌套的管理路由(admin/controller\u file\u name)执行相同的操作。有人知道如何生成这些路线吗?查看路线资源的代码,除了bog标准地图之外,它看起来不会做任何事情。资源:foos 相反,让我们在原始的基础上编写我们自己的方法来处理这个问题 def route_

我正在rails中构建一个生成器,生成一个前端和管理控制器,然后将路由添加到路由文件中。我可以让前端处理以下内容:

m.route_resources controller_file_name

但是我不知道如何对嵌套的管理路由(admin/controller\u file\u name)执行相同的操作。有人知道如何生成这些路线吗?

查看
路线资源的代码
,除了bog标准
地图之外,它看起来不会做任何事情。资源: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