playtime icon indicating copy to clipboard operation
playtime copied to clipboard

Use slugs instead of ids in the wishlist urls

Open leesharma opened this issue 8 years ago • 3 comments

Right now, our wishlist urls look like this: /wishlists/1. URLs are part of the user interface and ids don't make for a great UI; let's make them more like this: /wishlists/dc-general!

The minimum requirements for this issue are:

  • URLs should be slug-based instead of id-based
  • The slug should be automatically generated based on the name
  • The slug should update if the wishlist name updates
  • The slug (re-)generation should be fully tested
  • Everything should be indexed appropriately

leesharma avatar Oct 22 '17 20:10 leesharma

I'd like to give this a shot!

reneesandefur avatar Oct 22 '17 22:10 reneesandefur

@leesharma Does it matter if it is custom or uses a gem?

reneesandefur avatar Oct 22 '17 23:10 reneesandefur

@reneesandefur Awesome! It looks like you've gotten started, but here's an answer anyway: gems are fine as long as they're good quality and there's a reason to use them. 🙂

If you add a gem, it should have decent code quality, be tested, and (preferably) be pretty common. It should also be proportional to the problem: e.g. adding a giant state machine gem to avoid a small amount of hand-written code wouldn't be worth it.

For this issue, either method (custom made or friendly_id) would work, though I'd prefer custom; friendly_id looks a bit bloated for the task at hand.

leesharma avatar Oct 24 '17 03:10 leesharma