1

アプリにカテゴリを追加し、リンク内の醜い ID を取得して消えようとしました。(私はRails 4にいます

運がなければ。

現在、私は持っています

http://localhost:3000/categories/1

すべてのカテゴリには名前があります。カテゴリ リンクを変更して、そのカテゴリNAMEの ではなくを表示するにはどうすればよいですかID

例えば

http://localhost:3000/categories/atoms
4

2 に答える 2

3

メソッドを実装する必要がありますCategory#to_param

def to_param
  name
end

このメソッドは Rails の内部で使用され、リソースへの適切な URL を生成します。詳細はこちら:

http://apidock.com/rails/ActiveRecord/Integration/to_param

着替え忘れないで

Category.find(params[:id])

に:

Category.find_by_name!(params[:id])

これからは、ID ではなく名前で適切なカテゴリを検索するためです。

于 2013-08-14T14:48:16.863 に答える
2

Marek Lipka の答えは正しく、機能しますが、通常は gem Friendly-IDを使用してそれを行うのが好きです。以下のリンクに記載されているいくつかの追加の利点があります。

Ryan Bates はRailscasts #314でも取り上げました。

于 2013-08-14T14:57:52.617 に答える