2

通常のレールの方法で show メソッドにアクセスできる製品コントローラーがあります

product GET    /products/:id(.:format)                 products#show

ここで、ルート パス (例: mydomain.com/24fe3455g) でアクセスできる、各製品に一意のハッシュ URL を用意したいと考えています。

これを行う最良の方法は何ですか?

ベスト・フィリップ

4

2 に答える 2

0

md5各行のDBにを格納できます。id+timestampたとえば、このmd5を(連結された文字列として)計算してから、次のようなルートを作成します。

product GET    /products/:hash(.:format)                 products#show

UUIDを一般的な一意のIDに使用することもできます

于 2012-07-30T16:30:16.677 に答える
0

まず最初に、一致するルートを で定義する必要がありますroutes.rb。これは一種の「フォール スルー」であるため、通常はルートの最後に配置します。それを定義する方法については、ガイドをご覧ください: http://guides.rubyonrails.org/routing.html

アプリケーション全体で ID の代わりにこのハッシュ スタイルの URL を常に使用する場合は、モデルにメソッドto_paramとメソッドも実装します: http://apidock.com/rails/ActiveRecord/Base/to_paramself.from_param

ツールのサポートが必要な場合は、 Friendly_id のような宝石を使用することもできます: http://rubydoc.info/github/norman/friendly_id/master/file/Guide.rdoc

于 2012-07-30T16:38:00.013 に答える