実動レールアプリケーションから「すべてをキャッチ」または「デフォルト」ルートを削除しようとしています。私は操作の維持に興味がありますが、そのログを収集して、適切なハードコーディングされたルートに置き換えることができます。レールでのデフォルトルートのログの使用
したがって、config/routes.rb
ファイルに次のデフォルトルートがあります。
match '/:controller(/:action(/:id))'
ルートがヒットするたびにログを作成または取得する方法を教えてください。このログには理想的には、このルートによって実際にパラメータとともに処理される要求のみが含まれ、ルート自体は通常通り機能する必要があります。別の可能性は、Railsのルーターconstraints
を利用することであろう
match ':controller(/:action(/:id))(.:format)', :using_default_route => true
その後app/controllers/application_controller.rb
before_filter do
if params[:using_default_route]
logger.info("Default route for #{request.path.inspect}. params = #{params.inspect}")
end
end
あなたは素晴らしかったです。 –
偉大な答えは、その機能を知りませんでした、ありがとう+1 +1 – apneadiving
ちょうどアップデート。これは着信ルートを記録するために機能しますが、デフォルトルートのルート生成は一致しません(use_default_routeが渡されないため)。私は世代を可能にする最初のものの後に2番目のマッチを追加することでこれを修正しました。そして、それが使用されると、それは拾い上げられます。しかし、私の恐れは、これらの行の両方を削除すると、最終的にそれらのビューが失敗する原因になります。既定のルートも使用する生成をログに記録する方法があれば素晴らしいでしょう。 –