9

Rails 3 アプリを Rails 4.0.1 にアップグレード中です。

私の Rails 3 アプリでは、application.rb複数のルート ファイルを使用するための次のコードが my にあります。

config.paths["config/routes"] += Dir[Rails.root.join('config', 'routes', '*.rb').to_s]

しかし、Rails 4 で同じものを使用しようとすると、例外がスローされます。

任意のヒント?

4

3 に答える 3

26

大きなアプリケーションの 1 つで、config/routes.rbファイル内で次のコード セグメントを使用します。

class ActionDispatch::Routing::Mapper
  def draw(routes_name)
    instance_eval(File.read(Rails.root.join("config/routes/#{routes_name}.rb")))
  end
end

YourApplication::Application.routes.draw do
  # Loads config/routes/common.rb
  draw :common
  # Loads config/routes/another.rb
  draw :another
end

Rails 4 は当初 をサポートしてdraw :routeNameいましたが、改善が見られなかったため 削除されました。(わかりません ^.^)ここで git commit を確認できます: https://github.com/rails/rails/commit/5e7d6bba79393de0279917f93b82f3b7b176f4b5

于 2013-11-05T02:59:50.627 に答える
3

この SO の回答を確認してください: rails 4: routes.rb を複数の小さなファイルに分割する

この機能は Rails 4 で廃止されたようです。

于 2013-11-05T02:58:40.177 に答える
1

あなたのアプリケーションがどれほど大きいかわかりません。ただし、Rails ルートで適切なリファクタリングが必要な場合は、Rails 4 のルーティングの問題を調べる必要があります。

ファイルも問題もありません。

于 2013-11-05T03:06:12.503 に答える