2016-03-23 8 views
0

before_actionで絶対にルートを再ロードするにはどうすればよいですか? Rails.application.reload_routes!は、routes.rbに変更がある場合にのみルートをリロードします。ここでRails 4.2:(エンジンの)ルートを強制的にリロードするには?

はルートをリロードする方法についてActionDispatch::Routingの章です:

Reloading routes 

You can reload routes if you feel you must: 

Rails.application.reload_routes! 

This will clear all named routes and reload routes.rb if the file has been modified from last load. To absolutely force reloading, use reload!. 

reload!を言及する以外リロードを強制する方法についての詳細はありません。試しましたRails.application.reload!before_actionで動作しませんでした。 application controllerで:

before_action :reload_route 

def reload_route 
    Rails.application.reload_routes! 
end 

エンジン名がMyEngineある場合は、そのルートを再ロードするために強制する正しい方法は何ですか?

+0

は、なぜあなたは、実行時における 'route_helpers'をリロード強制したいですか?これは 'production'では意味をなさないでしょう – illusionist

+0

routes.rbの定数の場合 – user938363

+0

' Rails.application.reload_routes! 'も同様に動作します。 – user938363

答えて

0

config.paths["config/routes.rb"] << YOUR_ROUTE_FILE

+0

エンジンのルートファイルのパスは '/ my_engine/config/routes.rb'です。 'before_action'の' config.paths ["config/routes.rb"] << "my_engine/config/routes.rb" 'をしますか? – user938363

関連する問題