Rutas específicas Ruby on Rails deliema
-
27-10-2019 - |
Pregunta
Actualmente desarrollando una aplicación web móvil RoR para mostrar información sobre lugares particulares.
Llamemos a estos lugares "instalaciones". Cada instalación tiene al menos un "lugar", que es una instancia específica de la instalación. Así, por ejemplo, una instalación podría ser un parque de la ciudad y uno de sus lugares correspondientes podría ser el parque durante un concierto o evento. Si este ejemplo es confuso, ignore, no importa mucho.
Los datos de estas instalaciones y sus lugares correspondientes se alojan en Amazon Web Service S3 como objetos json. Utilizo HTTParty para leer los objetos json de AWS S3. Actualmente los estoy leyendo así:
En el controlador de la aplicación tengo:
inlcude HTTParty
base_uri 's3.amazonaws.com/our_bucket'
before_filter :set_up_httparty
def set_up_httparty
@installation = "INSTALLATION"
@venue = "VENUE"
@dir_url = "/#{@installation}/#{@venue}/"
end
En mis controladores correspondientes, donde obtengo información separada, tengo:
response =
ApplicationController.get("#{@dir_url}/ConstantUniqueName.json")
Actualmente estoy codificando los valores INSTALLATION y LUGAR para que apunten a un conjunto específico de carpetas. Esto funciona muy bien, pero necesito poder tomar estos valores de la URL así:
www.themobilewebapp.com/INSTALLATION/VENUE/index
Ahora estoy seguro de que lo más probable es que pase estos valores con parámetros como este:
www.themobilewebapp.com/index?installtion=INSTALLATION&venue=VENUE
Pero si es posible, me gustaría configurar mi URL de la forma anterior. Necesito que las URL sean amigables para que los usuarios las ingresen y que los códigos QRC apunten directamente a una instalación específica y al lugar correspondiente.
Si no es posible poder hacer algo como www.mobwebapp.com/INSTALL/VEN/index, ¿es posible configurar subdominios para cada lugar y luego introducir ese lugar como una cadena?
¡¡Se agradece cualquier ayuda !! ¡Gracias!
Solución
If you put this in your config/routes.rb
file then you will be able to use the URL pattern that you want:
match ':installation/:venue/index', :controller => :venue, :action => :index