1
我在rails中生成一個生成前端和管理控制器的生成器,然後將這些路由添加到路由文件中。我可以在前端與該工作:在自定義生成器中生成嵌套路由
m.route_resources controller_file_name
,但我無法弄清楚如何爲嵌套的管理路徑(管理/ controller_file_name)這樣做。任何人都知道如何生成這些路線?
我在rails中生成一個生成前端和管理控制器的生成器,然後將這些路由添加到路由文件中。我可以在前端與該工作:在自定義生成器中生成嵌套路由
m.route_resources controller_file_name
,但我無法弄清楚如何爲嵌套的管理路徑(管理/ controller_file_name)這樣做。任何人都知道如何生成這些路線?
看着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