0

巨大なroutes.rbファイルがあり、複数の管理可能なファイルに分割したいと思います。

次の記事で提案されているように、ルート用に個別のフォルダーを作成し、このフォルダーに複数のルートファイルを作成しました。リンク: http: //rails-bestpractices.com/posts/73-split-route-namespaces-into-different-files

routes.rb
routes/user.rb
routes/manager.rb
routes/admin.rb
routes/anonymous.rb

そして、application.rbで、config.paths値を設定します。さまざまな可能な組み合わせを使用しましたが、それでもすべてのセカンダリルートファイルをロードできません。

これは、application.rbファイルでconfig.pathsを設定するために使用したコードのリストです。誰も私のために働いていません。

config.paths["config/routes"].concat(Dir[Rails.root.join("config/routes/*.rb")])
config.paths["config/routes"] = Dir[Rails.root.join("config/routes/*.rb")]
config.paths["config/routes"] = Dir[Rails.root.join("config/routes/*.rb")].each{|r| config.paths["config/routes"].unshift(r) }
config.paths.config.routes.concat Dir[Rails.root.join("config/routes/*.rb")]

誰かが私を助けてくれるかどうか感謝します。Rails3.2.1を使用していることに注意してください。上記のルート分割の手法は以前のバージョンのRailsでも機能すると確信していますが、3.2.1を使用して実装することはできません。

4

1 に答える 1

4

わかった。すべてのセカンダリ ルートをメインの routes.rb にロードできます。汚いように見えますが、Rails 3.2.1 で動作します。

Acme::Application.routes.draw do
  resources :users

  Dir[Rails.root.join("config/routes/*.rb")].each{|r| load(r)}

  resources :messages
  match '*path' => 'cms/pages#show'
  root :to => "home#index", :port => false
end

よりクリーンなアプローチは大歓迎です。

于 2012-05-30T04:10:33.770 に答える