I know this is an old question, but there still seem to be some interests. Therefore, I will publish what I came up with.
I'm not sure how much you want to be resourceful, but this, with a sip, works:
resources :articles do member do get '*slug', to: 'articles#show', as: 'slugged' end end
This also works:
resources :articles do member do get ':slug', to: 'articles#show', as: 'slugged' end end
In both cases, you can use
<%= link_to slugged_article_path(article, article.title.parameterize) %>
in your views (you can define a virtual attribute in your model for slug, instead of dynamically creating it using article.title.parameterize in the view).
Note that so far, Rails will not complain if you type anything as a bullet in your browser.
I personally find the resourceful approach a bit detailed, since I am only interested in having pretty URLs for show actions (which are the only ones that ordinary users or search engine bots can see), so I find it simpler than that:
resources :articles get 'articles/:id/:slug', to: 'articles#show', as: 'slugged_article'
source share