ルートの両方がconfig/routes.rb
で同じcontroller#action
へのルートそれらを、同じタスクを実行している場合。例えば
:
get 'tires', to: 'welcome#index'
get 'lawn-and-garden', to: 'welcome#index'
UPDATE:
私は右のあなたを理解していれば、あなたは(クエリのparamなし)の両方のルート/tires?product_subtype=1
など/industrial-tires
でアクセスできるようにページをしたいと思います。私たちのプロジェクトの1つに似たようなことをしました。私たちはこれらのかなりのURLをランディングページと呼びます。あなたは非常に少数のランディングページの一定の数を持っている場合は
:私はこれらのランディングページを実装するために2つのオプションを考えることができ
対応するサブタイプのビューをレンダリングして、それぞれのアクションを作成します。
def industrial_tires
## render view filtered for product_subtype = 1
end
def commercial_tires
## render view filtered for product_subtype = 2
end
## .... so on
あなたはランディングページの多く/可変数がある場合:
を、あなたは条件付きでスラグに基づいて特定のビューをレンダリングするすべてのルートを優先度の低いキャッチを作成し、マッピングされたアクション内する必要があります。
get '*path', to: 'tires#landing_page' ## in routes.rb at the end of the file
def landing_page
## "path" would be equal to industrial-tires or commercial-tires, etc.
## conditionally specify view filtered for product_subtype based on path value
end
あなたのコントローラで 'params [:product_subtype]'をテストし、適切なページにリダイレクトする必要があると思います。 – moveson
@moveson問題は、元のURLからアクセスできるページが必要であるということです。私たちはそれらを他のURLにリダイレクトしたくありません。例:ユーザーが '/ tires?product_subtype = 8'を訪れた場合、URLは同じままです。ユーザーが '/ lawn-and-garden'を訪れると、URLも同じままになります。リダイレクトは発生しません。 –
その場合、各コントローラを同じビューをレンダリングするだけで済みます。 – moveson