初めまして。booinkと申します。
みなさんがどのように解決しているのか気になったため投稿いたします。
Railsを素のまま使うと、モデルに紐づいたテーブルのauto_incrementなIDがURLのリソースのIDとして使用されますが、auto_incrementなIDは他のリソースが特定しやすいため、避けられる傾向にあると思います。
今までは、例えばslug文字列をテーブルのカラムに持たせてリソースの特定に使用したり、uuidカラムを別途追加またはidをstringにして、SecureRandom.uuid等の値を持たせる方法で解決してきました。
gemで言えば、friendly_id(https://github.com/norman/friendly_id) や uuidable(https://github.com/flant/uuidable) などを使用しております。
ただ、デファクトスタンダードと呼べるような方法が上記にあげた解決方法なのかどうか自分の中で疑わしかったので、みなさんはどのように解決しているのか気になった所存です。
今回投稿するに思い立ったきっかけとして、fast_jsonapi(「Sorry, new users can only put 2 links in a post.」エラーが出てしまったので、割愛します) を使ってモデルのデータをシリアライズしようとした時に、モデルのrelationshipsに(auto_increment な) idしか指定できず、別途追加してある uuid 文字列をidの代わりに指定しようとすると、一度関連先のモデルをfindしてからuuidの値をアサインする形になってしまうため、冗長かつSQLが多く発行されてしまうのを懸念して、uuid文字列をテーブルのprimary_keyとして再構築しようかと考えましたが、文字列のprimary_keyにやや抵抗があるため、どうしたものかと頭を抱えている現状でございます。
勢いで綴っているため乱文ではございますが、皆様のご意見をお伺いしたく思っております。