2

私はRuby on Railsで小さなプロジェクトを構築しています(私はこれを使用するのはかなり新しいです)。アイデアは、ユーザーが国とカテゴリに応じてすべてのリストをフィルタリングできる小さなリスト Web サイトを持つことです。

gem ransack を使用してフィルターを実現し、機能します。

ここで改善したいのは、ユーザーがビューをフィルター処理した後の URL です。たとえば、私の URL は次のようになります。ボスニア+ヘルツェゴビナ

SEO の理由から、きれいできれいな URL が必要です。上記の例は、次のように変換されます (またはこの方向の何か): domain.com/listings/all/c/sport/d/Bosnia-and-Herzegovina

gem ラックの書き換えをインストールし、いくつかの基本的なリダイレクトが機能するようにしました。しかし、上記の URL を実現するために必要なルールがわかりません。特に、ユーザーは次のような URL になる 1 つのフィルターしか使用できなかったためです: domain.com/listings/all/d/Bosnia-and-Herzegovina

誰かがアイデアを持っているか、同じ問題に遭遇しましたか?

4

1 に答える 1

2

次のようなものをに追加する必要がありますconfig/routes.rb

get 'listings/all/c/:category/d/:country', to: 'listings#search'

# if you want URLs with only country or only category
# also add these two
get 'listings/all/d/:country', to: 'listings#search'
get 'listings/all/c/:category', to: 'listings#search'

次に、ListingsController#search メソッドで (実際のコントローラーとメソッド名に置き換えます):

# Let's say user opens "domain.com/listings/all/c/sport/d/Bosnia-and-Herzegovina
def search
  params[:category] # 'sport'
  params[:country] # Bosnia-and-Herzegovina
  # ... you code could use params above ...
end
于 2015-08-04T10:39:33.650 に答える