Creo que el código es más explícita opciónRender acción del controlador desde otro controlador
Una opción
class RedirectController < ApplicationController
def index
redirect_to :controller => 'posts', :action => 'show', :id => 1
# it works
end
end
B
class RedirectController < ApplicationController
def index
render :controller => 'posts', :action => 'show', :id => 1
# it doesn't work
end
end
es posible en (B) para cargar otra acción en otro ¿controlador? (y no solo la vista) ¿Cómo? Gracias
¿Por qué querrías hacer esto? Sería mejor si nos diga el problema subyacente que está tratando de resolver. –
El "problema subyacente" es que quiero tener la libertad de configurar algunas URL como lo desee sin tocar routes.rb – user142913
Solo para aclarar, su Opción A no representa una acción de otro controlador, responde la solicitud actual con un redirigir que apunta el navegador al otro controlador (por lo tanto, da como resultado una segunda solicitud que golpea al otro controlador). 'render: template => 'posts/show'' sin embargo realmente renderiza la plantilla del otro controlador directamente. Por supuesto, necesita configurar cosas para la plantilla para mostrar (como su @post var). No estoy seguro de si entiendo lo que estás tratando de hacer, pero generalmente no puedes configurar las direcciones URL sin tocar routes.rb, ya que eso es para lo que routes.rb es bueno. – Zargony