Я уже задаю этот вопрос на Quora ..
http://www.quora.com/How-does-Quora-rewrite-their-urls
Для кого действительно заинтересован реализовать Quora/Facebook URL, как. Heres наконечник в Rails3:
Составьте таблицу под названием slugs
:
# slug | model_id | model
# ===========================
# simple data:
# one | 2222 | post
# two | 1111 | user
# six | 5432 | comment
Сейчас в routes.rb добавить эту строку в нижней части:
match '/:id', :to => proc { |env|
id = env["action_dispatch.request.path_parameters"][:id]
model = Slug.find_by_slug(id).model
controller = [model.pluralize.camelize,"Controller"].join.constantize
controller.action("show").call(env)
}, :as => :slugable
так, если мы идем к /one
на маршрутах он переводится как:
id: one
so from the slugs table,
model: post
and the route will point to "posts#show"
Теперь в действии show
во всех контроллерах
@something = Model.find_by_slug(params[:id])
Это лучший способ сделать это? Я хочу сделать доступными уникальные URL-адреса USER, такие как Facebook. facebook.com/newtongarcia facebook.com/username1 facebook.com/username2 – newx
Экран, связанный в моем ответе, имеет аналогичный вариант использования как ваш. Смотрите его для более подробной информации. –