Aureliano, la del before_filter la pensé (monkeypatcheando Base), pero me
parece muy intrusivo. Si no fuera por la complejidad, preferiría patchear
Routing, con tal de dejar un DSL claro y explícito (como Redirect Routing).

Por ahora puedo manejar los routes yo, pero quería desentenderme de eso. Asi
que veré cómo lo resuelvo.

Gracias!

Nacho

2008/5/28 Adrian Madrid <[EMAIL PROTECTED]>:

> Donde pones los redirects no es el problema. AFAIK Rails no acepta cambiar
> los routes online asi que no se como lo podes solucionar. Contanos como lo
> solucionaste si le encontras la vuelta ;-)
>
> AEM
>
>
> 2008/5/28 NachoKB <[EMAIL PROTECTED]>:
>
>> El tema es que tengo que permitir que redireccionen de cualquier URL
>> (agregarle el prefijo ya lo hace otra url), y pueden saltar con
>> absolutamente cualquiera...
>>
>> Con el tema de usar el redirect del web server, tampoco aplica. Para
>> agregar un redirect, tendría que (1) editar un archivo de configuración, (2)
>> restartear el web server. Necesito que lo pueda hacer un usuario via web
>> (sin acceso a los archivos de configuración). Por eso digo que (en
>> principio) los Redirects serían models AR...
>>
>> Saludos,
>>
>> nacho
>>
>> 2008/5/28 Adrian Madrid <[EMAIL PROTECTED]>:
>>
>> Si no podes hacer los redirects prefixeados como sugiere Nelson esta
>>> complicado. La unica otra opcion es saltearte Rails y usar un redirect map
>>> file en Apache (si estas usando Apache) aunque no se si podes modificarlo y
>>> no tener que recomenzar Apache. La verdad que no le veo una solucion
>>> sencilla: o salteas el problema de conflictos usando un prefix o tenes que
>>> reescribir las rutas y recomenzar el server.
>>>
>>> AEM
>>>
>>> 2008/5/28 nelson fernandez <[EMAIL PROTECTED]>:
>>>
>>> Nacho,
>>>>
>>>> Desconozco el dominio del problema, pero quizás una solución algo más
>>>> simple podría ser dejar fija una parte de la ruta y usar los
>>>> parámetros para hacer el redirect, algo así
>>>>
>>>> map.connect '/r/*sections', :controller => :redirects, :action =>
>>>> redirect
>>>>
>>>>
>>>> --
>>>> :: nelson ::
>>>> artesano de software
>>>> http://netflux.com.ar
>>>>
>>>>
>>>> 2008/5/28 NachoKB <[EMAIL PROTECTED]>:
>>>> > Grupo,
>>>> >   tengo una duda con respecto a las rutas. El problema particular es
>>>> que
>>>> > necesito implementar redirects arbitrarios administrables por un
>>>> usuario
>>>> > (por lo que voy a tener un model Redirect, etc, etc).
>>>> >
>>>> >   En donde me trabé es con las benditas rutas. Según entiendo, el
>>>> primer
>>>> > mapeo que matchea la url (según el orden en que se declaran en el
>>>> routes.rb)
>>>> > es el que determina qué es lo que se ejecuta.
>>>> >
>>>> >   Mi problema es si quiero tener redirects arbitrarios, necesito una
>>>> manera
>>>> > de que, si la url no matchea algún redirect específico (y esto está
>>>> definido
>>>> > por lógica propia del redirect, no alcanza el método connect...),
>>>> poder
>>>> > continuar con la evaluación de las rutas subsiguientes.
>>>> >
>>>> >   Algo así nunca lo vi posteado en ningún lado. Doy un ejemplo a ver
>>>> si
>>>> > puedo aclarar un poco:
>>>> >
>>>> >> routes.rb:
>>>> >>
>>>> >>   map.connect '*path', :controller => :redirects, :action => redirect
>>>> >>
>>>> >>   map.connect ':controller/:action/:id'
>>>> >
>>>> > en este caso, la segunda regla nunca se llega a considerar (ya que la
>>>> > primera siempre matchea). RedirectsController siempre se ejecuta, aún
>>>> cuando
>>>> > no encuentre un redirect que aplique a la URL del request (en cuyo
>>>> caso no
>>>> > tiene forma de devolver el control de flujo a Routing).
>>>> >
>>>> >   Entonces, dije, hago algo así (siempre usando rutas clásicas sin
>>>> resources
>>>> > en los ejemplos):
>>>> >
>>>> >> routes.rb:
>>>> >>
>>>> >>   map.connect ':controller/:action/:id'
>>>> >>
>>>> >>   map.connect '*path', :controller => :redirects, :action => redirect
>>>> >
>>>> >   El problema con este approach es que si tengo un controller "Blog",
>>>> por
>>>> > ejemplo, y quiero tener un redirect de "/blog/read/16" a
>>>> > "/blog/show/nombre-de-un-post", "/blog/read/16" matchea la primera
>>>> regla
>>>> > (con { :controller => :blog, :action => :read, :id => "16" }) y nunca
>>>> se
>>>> > ejecuta el controller Redirects...
>>>> >
>>>> >   Por un lado necesito la flexibilidad de trabajar con redirects
>>>> > absolutamente arbitrarios (editables por un usuario), pero por otro
>>>> lado
>>>> > comienzo a temer por el lado de performance. Una que se me había
>>>> ocurrido
>>>> > era extender el connect con un bloque (que sirva de predicate para
>>>> aceptar
>>>> > la regla definitivamente, y ahí pondría la lógica propia). El problema
>>>> sería
>>>> > que eso se ejecutaría absolutamente en todo request (teniendo un
>>>> overhead
>>>> > que puede ser notable si no cacheo esas consultas).
>>>> >
>>>> >   Se me ocurriría extender Redirect Routing [1] para soportar bloques
>>>> (me
>>>> > ahorraría el controller)... tendría que pensar en cómo hacerlo lo más
>>>> light
>>>> > posible de todas maneras...
>>>> >
>>>> >   ¿Se les ocurre o conocen algo que se me haya pasado?
>>>> >
>>>> > nacho
>>>> >
>>>> > [1]
>>>> http://pinds.com/2006/07/18/release-redirect-routing-plugin-for-rails
>>>> >
>>>> > _______________________________________________
>>>> > Ruby mailing list
>>>> > [email protected]
>>>> >
>>>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>>> >
>>>> >
>>>> _______________________________________________
>>>> Ruby mailing list
>>>> [email protected]
>>>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>>>
>>>
>>>
>>>
>>> --
>>> Adrian Esteban Madrid
>>> Lead Developer, Prefab Markets
>>> http://www.prefabmarkets.com
>>> _______________________________________________
>>> Ruby mailing list
>>> [email protected]
>>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>>
>>>
>>
>> _______________________________________________
>> Ruby mailing list
>> [email protected]
>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>
>>
>
>
> --
> Adrian Esteban Madrid
> Lead Developer, Prefab Markets
> http://www.prefabmarkets.com
>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a