3

テーブル 'categories' と category_name などのフィールドを持つ足場 'Category' があります。現在、私のホームページでは、すべてのレコードを表示しています。特定のカテゴリの「表示」をクリックすると、URL は次のようになります -> " http://www.abc.com/categories/1 " ここで、1 は ID です。ここでは、「categories/1」ではなく、「http://www.abc.com/# {category_name}」という形式の URL が必要です。フレンドリ ID を使用していますが、URL は " http://www.abc.com/categories/# {category_name}" のようになります。URLからコントローラ名とIDを非表示にして、カテゴリ名のみを表示したい

4

1 に答える 1

3

次のようなものを追加できます

match '/:path' => 'categories#show', as: :category

あなたのルートで。これはルートの最後に配置する必要があることに注意してください。これにより、すべてのコントローラーのインデックス アクションと一致するため、優先度が最も低くなります。のように使う

category_path(category_name)

または

"/#{category_name}"

as: :categoryオプションを追加することによって生成された named_route と競合しないように、show アクションへの show マッピングを削除する必要がある場合もあります。

resources :categories, except: [:show]
于 2013-03-06T07:27:57.193 に答える