0

したがって、Rails 4.2 アプリケーションには alchemy_cms gem があり、そのルートを config/routes.rb の最後にマウントする必要があります。

SampleApp::Application.routes.draw do
  #other routes for the rails app here
  # :
  # :
  mount Alchemy::Engine => '/'
end

「/somehacker/routingurl」のようなルートを取得し、Alchemy::Engine が処理するようになり、デフォルトの 500 エラーが発生します。カスタム 404 エラーを実行したい場合、適切な方法はカスタム 404 ページを作成し、Alchemy にリダイレクトを処理させることですか? それ以外の場合、Alchemy のドキュメントでは config/routes.rb の最後のルートでなければならないと指定されているため、キャッチオール ルートを追加してある種のエラー ページにリダイレクトする方法はないと思います。

編集:

問題の 1 つは、「en」が有効なロケールである「/en/us」など、上記の無効な「somehacker」ルートのように、Alchemy ルーティング エンジンで解析する必要があるルートがいくつかあることです。これが、ルート処理を Alchemy エンジンのルート ファイルに入れることを最初に考えた理由です。

4

1 に答える 1

0

Alchemy cms gem を構成して使用して未知のルートをカスタム定義ページにリダイレクトすることが難しい場合は、以下の方法を使用して、以下の小さなコーディング調整で同じことを実装できます。

レール 4.XXX

1. 最初の方法。

( routes.rb )

getすべての不明なルートをリダイレクトする単純な方法を引き続き使用できます。

  get '*path', to: 'home#index'

POST リクエストと GET リクエストの両方にルーティングを提供したい場合は、依然として match を使用できますが、Rails は を介し​​てリクエスト メソッドを指定することを望んでいますvia

  match "*path" => "home#index", via: [:get, :post]  

は順次routes.rb実行されることに注意してください (指定されたパス構造に適合する最初のルートに一致する) ため、一致の最後にワイルドカード キャッチを配置してください。

ここで、home#index を、アプリケーションで定義した任意のカスタム パスに置き換えることができます。また、このリダイレクト コードは、routes.rb の下部にのみ保持することが重要であることに注意してください。

2.同じ問題を別の観点から解決するための次のチュートリアルに従うことができます。

Rails 4 のカスタム 404 エラー ページ

于 2015-12-17T12:32:42.360 に答える