Глядя на код для 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