2011-01-16 19 views
5

Quiero que todos mis páginas en mi solicitud 2.3 rieles a tener la URL con el prefijo:direcciones URL prefijo en aplicación Rails

www.example.com/app/ 

y lo hice este escrito en routes.rb las siguientes líneas:

# I named the first part of the url ':appl' 
map.root :appl => "app", :controller => "home" 

# Default routes 
map.connect ':appl/:controller/:action/:id' 
map.connect ':appl/:controller/:action/:id.:format' 

todo funciona bien, con la excepción de map.resources, donde tengo

map.resources :pages 

y ahora donde tengo edit_page_path o page, las url generadas no son correctas, porque app no está insertado al principio. Lo he intentado con namespace y scope, como he visto here in chapter 2.6, pero sin éxito.

¿Cómo debo hacer esto? ¿Es el :appl en las rutas una mala idea?

Respuesta

0

Así es como he escrito en routes.rb:

map.resources :pages, :as => 'app/pages' 

Ahora, edit_page_path y otros regresan el camino correcto, con el prefijo 'app'

6

Si va a implementar el pasajero, sólo tiene que establecer (en la configuración del servidor web):

RailsBaseURI /app

Y luego en la configuración de su aplicación:

config.action_controller.relative_url_root = '/app' 

No deberías necesita preocuparse por cualquier cosa sub-uri más allá de eso. Debería funcionar. Vea el Passenger documentation para más detalles.

Para mestizo, puede utilizar la opción --prefix

script/server mongrel -P /app 
+0

No uso Passenger. –

+0

¿Cuál es su pila de implementación? Puede haber una solución disponible allí. –

+0

- Yo uso Mongrel. –

Cuestiones relacionadas