1

フロントエンドと管理コントローラーを生成し、ルートをルートファイルに追加するジェネレーターをレールで構築しています。これでフロントエンドを動作させることができます:

m.route_resources controller_file_name

しかし、ネストされた管理ルート (admin/controller_file_name) に対して同じことを行う方法がわかりません。これらのルートを生成する方法を知っている人はいますか?

4

1 に答える 1

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
于 2009-06-09T06:33:21.523 に答える