2010-03-12 12 views

Respuesta

0

Puede usar una gema llamada SubDomain-Fu para esto. Mire esto screen cast para más detalles.

+0

¿Es la mejor manera de hacerlo? Lo que quiero es poner a disposición URL únicas de USER como Facebook. facebook.com/newtongarcia facebook.com/username1 facebook.com/username2 – newx

+0

El elenco de la pantalla vinculado en mi respuesta tiene un caso de uso similar al suyo. Míralo para más detalles. –

4

ya que hago esta pregunta en Quora ..

http://www.quora.com/How-does-Quora-rewrite-their-urls

Para que realmente interesa para implementar URL Quora/Facebook similares. Heres una punta en Rails3:

hacer una tabla llamada slugs:

# slug | model_id | model 
# =========================== 
# simple data: 
# one | 2222 | post 
# two | 1111 | user 
# six | 5432 | comment 

Ahora en routes.rb añadir esta línea a la parte inferior:

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 

así, si nos vamos a /one en las rutas, se tradujo en:

id: one 
so from the slugs table, 
model: post 
and the route will point to "posts#show" 

Ahora en la acción show en todos los controladores

@something = Model.find_by_slug(params[:id]) 
Cuestiones relacionadas