私は Rails 3.0.14 を使用しており、機知に富んだスタイルを使用して routes.rb を構築しています。記載されているどのルートにも一致しないすべてのリクエストをキャッチするワイルドカード ルートが必要です。
そのようなルートを構築する適切な方法は何ですか?
私は Rails 3.0.14 を使用しており、機知に富んだスタイルを使用して routes.rb を構築しています。記載されているどのルートにも一致しないすべてのリクエストをキャッチするワイルドカード ルートが必要です。
そのようなルートを構築する適切な方法は何ですか?
置く
match '*path' => 'your_controller#your_action'
routes.rb ファイルの最後にあります。ルートはトップダウンでステップスルーされるため、これは重要です。
http://guides.rubyonrails.org/routing.html -> 3.10も参照してください。
Rail 4 の場合、リクエスト タイプを指定する必要があります。
match "*path", to: "application#custom_action", via: :all
他の人が言ったように、これをルートファイルの一番下に置きます。
match '*path'
ステートメントで正確に「パス」を使用することは必須ではありません。そこに任意のトークンを設定できます:
get "*string1"
また
get "*string2"
Rails は、実際の HTTP クエリを、トークンにちなんで名付けられたパラメーターに割り当てます。例:
get "*user" => "users#show"
コンソールで:
Started GET "/john" ....
Processing by UsersController#show as HTML
Parameters: {"user"=>"john"}
のように複数のアスタリスクを使用できますget "*id*user"
。ただし、この場合、Rails は 2 つ以上のアスタリスクを「直感的な方法で」処理するため、予測できない結果が得られます。詳細については、 http: //guides.rubyonrails.org/routing.html#route-globbing-and-wildcardを参照してください。 -セグメント
@steel と @awenkhh に加えて、そのルートのコントローラー アクションに以下を追加することをお勧めします
respond_to do |format|
format.html
# other formats you already support
format.all { render text: '' }
end
そうしActionView::MissingTemplate: Missing template
ないと、予期しない形式のエラーが発生することになります。
[暴言] 間違った攻撃ベクトルを試している人などに特に役立ちます/wp-admin/css/wp-admin.css
。1 日に約 100 件のリクエストを/wp-admin/*
受け取っているようです。非常に迷惑な人々から、より高価なロールバー アカウント プランを取得するように求められているようです。[/暴言]