Мне тоже нравится подход friendlyId
Как я справляюсь с подобными вещами на примере классического блога
Blog Controller {извлекает все сообщения по дате}
Контроллер сообщений {}
Маршруты
resource :blog do
resources :posts
end
App / Модели / post.rb
class Post < ActiveRecord::Base
belongs_to :site
has_friendly_id :title, :use_slug => true
end
Тогда вы получите несколько хороших путей
blog_path #Blog Index
blog_post(p) #Post Show