¿Es posible almacenar plantillas erb en la base de datos? ¿Cómo?Rieles: almacenamiento de plantillas erb en la base de datos
Respuesta
Sure it is.
Pero creo que esta no es la mejor solución si solo necesita algunas páginas con el mismo diseño y diferente contenido.
Si realmente quiere que los ERB se guarden en la base de datos, cree un modelo con sus ERB guardados. Entonces puede invocar un código de controlador como este, para renderizar ese ERB.
erb = ERB_model.find(...)
@some_model_data = SomeModel.find(...)
erb = ERB.new(erb.source)
render :text => erb.result, :layout => true (or another)
Mirar ERB.new parámetros.
También estoy trabajando en un concepto casi igual en el que está trabajando. También necesito que mis clientes creen sus propios sitios web
Inicialmente también tuve la idea de guardar todos los erbs en la base de datos, pero más tarde abandoné esa idea, aunque funciona para páginas de texto plano, cuando quiere renderizar componentes y parciales, no será fácil.
y sobre todo he tenido problemas sobre cómo guardar archivos en la base de datos layout.erb
, así que decidí ir de una manera que la página va a construir en el subdominio
aplausos, sameera
I encontró mejor manera:
def show
@modal_popup = ModalPopup.find(params[:id])
# erb = ERB.new(@modal_popup.content)
# render :text => erb.result, :layout => false
render :inline => @modal_popup.content, :layout => false
end
Uso esta acción dentro de iframe o renderizo la acción desde otras vistas.
¡Funciona! Muchas gracias hombre –
- 1. Rieles: almacenamiento de datos cifrados en la base de datos
- 2. Rieles: almacenamiento de archivos binarios en la base de datos
- 3. Almacenamiento de matrices en la base de datos utilizando ActiveRecord
- 4. Cifrado de datos para almacenamiento en la base de datos
- 5. Almacenamiento de información de OpenID en la base de datos
- 6. Rieles con plantillas Underscore.js
- 7. Datos predeterminados de almacenamiento de la base de datos local
- 8. rieles fragmento de almacenamiento en caché rindió plantilla de líquido
- 9. manejo .Erb con Nils rieles
- 10. Drools: reglas de almacenamiento en la base de datos
- 11. PHP - Almacenamiento de texto en la base de datos MySQL
- 12. Almacenamiento de ASP.Net MVC Views en la base de datos
- 13. Almacenamiento de entradas en la base de datos MySQL
- 14. plantillas de carga FreeMarker de la base de datos
- 15. Rieles: Plantillas de aplicaciones/generadores de scripts con HAML?
- 16. Plantillas de Ruby: ¿cómo pasar variables a ERB en línea?
- 17. Rieles de base de datos valores booleanos
- 18. resaltado de sintaxis macvim html5 en plantillas erb
- 19. Capacidad máxima de almacenamiento de la base de datos SQLite
- 20. Rieles: almacenar traducciones en la base de datos
- 21. Base de datos para almacenamiento local
- 22. Plantillas de aplicación de rieles
- 23. Rieles: ¿Ventajas de almacenar la sesión en la base de datos?
- 24. Rieles: base de datos separada por subdominio
- 25. rieles ERB <%- ... -%> vs <% ... %>
- 26. Almacenamiento de archivos de audio en una base de datos
- 27. Almacenamiento de permisos de aplicaciones en una base de datos
- 28. Almacenamiento de tamaños de archivos en una base de datos
- 29. plantillas chef y erb. Cómo usar bloques de código booleanos
- 30. ¿Cómo escapar de la etiqueta de ERB en ERB
Gracias! Quiero almacenar erb's en la base de datos porque tengo muchos subsitios en mi aplicación de rieles (como blogger tiene muchos blogs) con plantillas personalizables y no quiero almacenar erbs en el disco. Sí, conozco las plantillas de lliquid pero necesito un motor funcional y no me importa la seguridad porque todos los subsitios están controlados por un usuario (mi cliente). Pero todavía estoy pensando en almacenar plantillas en directorios como "app/views/# {site.id} /". Simplemente no quiero hacer operaciones de archivos ... Creo que está mal ... no es un camino de rieles. –
Estoy de acuerdo con usted. DB way es más rails-way, porque necesitará menos código (feo). Acabo de agregar algunas correcciones a mi respuesta (probablemente utilizará diseños y algunas variables dentro de ERB). – retro