Documents FriendlyURLs
This commit is contained in:
parent
cbbaa5c196
commit
7a439487c0
2 changed files with 31 additions and 1 deletions
|
@ -233,7 +233,6 @@ Rails.application.routes.draw do
|
||||||
match 'campaigns/:campaign_slug' => 'campaigns#show', via: %i[get post], as: :campaign_location
|
match 'campaigns/:campaign_slug' => 'campaigns#show', via: %i[get post], as: :campaign_location
|
||||||
match 'campaigns/:campaign_slug/supporters' => 'campaigns/supporters#index', via: %i[get post]
|
match 'campaigns/:campaign_slug/supporters' => 'campaigns/supporters#index', via: %i[get post]
|
||||||
|
|
||||||
|
|
||||||
# Events
|
# Events
|
||||||
match 'events' => 'events#index', via: %i[get post]
|
match 'events' => 'events#index', via: %i[get post]
|
||||||
match 'events/:event_slug' => 'events#show', via: %i[get post]
|
match 'events/:event_slug' => 'events#show', via: %i[get post]
|
||||||
|
|
31
docs/friendly_urls.md
Normal file
31
docs/friendly_urls.md
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
# Friendly URLs
|
||||||
|
|
||||||
|
Houdini has a concept called "Friendly URLs", that is an alternative for the
|
||||||
|
default Rails URLs to present the same navigation in a more user-friendly way.
|
||||||
|
|
||||||
|
The base for the URLs start with the nonprofit's state code, city and
|
||||||
|
nonprofit name in slug format.
|
||||||
|
|
||||||
|
> The slug is determined by: transforming the name in lower case; changing '@'
|
||||||
|
> for 'at'; changing '&' for 'and'; and replacing spaces and remaining special
|
||||||
|
> characters with hyphens. Read further on
|
||||||
|
> [Format::Url.convert_to_slug](https://github.com/houdiniproject/houdini/blob/main/lib/format/format/url.rb).
|
||||||
|
>
|
||||||
|
> More logic to the naming is applied when there is an entity with the same
|
||||||
|
> name. Read further on
|
||||||
|
> [SlugCopyNamingAlgorithm](https://github.com/houdiniproject/houdini/blob/main/lib/slug_copy_naming_algorithm.rb).
|
||||||
|
|
||||||
|
<!-- markdownlint-disable MD013 -->
|
||||||
|
| Path description | Default Rails URL | Friendly URL |
|
||||||
|
|:----------------:|:-----------------:|:------------:|
|
||||||
|
| Base URL (and main nonprofit page) | `/nonprofits/<nonprofit_id>` | `/<state_code>/<city>/<name>` |
|
||||||
|
| Dashboard | `/nonprofits/<nonprofit_id>/dashboard` | `/<state_code>/<city>/<nonprofit_slug>/dashboard` |
|
||||||
|
| Donate frame | `/nonprofits/<nonprofit_id>/donate` | `/<state_code>/<city>/<nonprofit_slug>/donate` |
|
||||||
|
| Button | `/nonprofits/<nonprofit_id>/button` | `/<state_code>/<city>/<nonprofit_slug>/button` |
|
||||||
|
| Campaigns | `/nonprofits/<nonprofit_id>/campaigns` | `/<state_code>/<city>/<nonprofit_slug>/campaigns` |
|
||||||
|
| An specific campaign | `/nonprofits/<nonprofit_id>/campaigns/<campaign_id>` | `/<state_code>/<city>/<nonprofit_slug>/campaigns/<campaign_slug>` |
|
||||||
|
| Supporters from an specific campaign | `/nonprofits/<nonprofit_id>/campaigns/<campaign_id>/supporters` | `/<state_code>/<city>/<nonprofit_slug>/campaigns/<campaign_slug>/supporters` |
|
||||||
|
| Events | `/nonprofits/<nonprofit_id>/events` | `/<state_code>/<city>/<nonprofit_slug>/events` |
|
||||||
|
| An specific event | `/nonprofits/<nonprofit_id>/events/<event_id>` | `/<state_code>/<city>/<nonprofit_slug>/events/<event_slug>` |
|
||||||
|
| Stats for an specific event | `/nonprofits/<nonprofit_id>/events/<event_id>/stats` | `/<state_code>/<city>/<nonprofit_slug>/events/<event_slug>/stats` |
|
||||||
|
| Tickets for an specific event | `/nonprofits/<nonprofit_id>/events/<event_id>/tickets` | `/<state_code>/<city>/<nonprofit_slug>/events/<event_slug>/tickets` |
|
Loading…
Reference in a new issue