アプリにカテゴリを追加し、リンク内の醜い ID を取得して消えようとしました。(私はRails 4にいます)
運がなければ。
現在、私は持っています
http://localhost:3000/categories/1
すべてのカテゴリには名前があります。カテゴリ リンクを変更して、そのカテゴリNAME
の ではなくを表示するにはどうすればよいですかID
。
例えば
http://localhost:3000/categories/atoms
アプリにカテゴリを追加し、リンク内の醜い ID を取得して消えようとしました。(私はRails 4にいます)
運がなければ。
現在、私は持っています
http://localhost:3000/categories/1
すべてのカテゴリには名前があります。カテゴリ リンクを変更して、そのカテゴリNAME
の ではなくを表示するにはどうすればよいですかID
。
例えば
http://localhost:3000/categories/atoms
メソッドを実装する必要があります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 ではなく名前で適切なカテゴリを検索するためです。
Marek Lipka の答えは正しく、機能しますが、通常は gem Friendly-IDを使用してそれを行うのが好きです。以下のリンクに記載されているいくつかの追加の利点があります。
Ryan Bates はRailscasts #314でも取り上げました。