Necesito crear una vista en mi base de datos. Sé que puedo usar ActiveRecord para crear tablas con el método create_table. Me pregunto si hay algo así como create_table, pero eso crea una vista en su lugar.¿Hay algo como create_view en ActiveRecord (Rails)?
Respuesta
No. Esta es una de las cosas en las que ActiveRecord es 'obstinado'. En realidad, no le importan mucho las características comunes de las bases de datos relacionales como vistas, claves externas y algunas otras.
El API documentation contiene una lista de métodos públicos disponibles para usted.
Lo mejor que puede hacer es escribir el CREATE
-statement en SQL simple, y use ActiveRecord::Base.connection.execute
.
¡Puede usar la gema schema_plus para hacer esto!
https://github.com/SchemaPlus/schema_plus
En realidad es un grupo de gemas pero contiene una que se refiere a las vistas.
Proporciona un método create_view
que se pueden agregar a sus migraciones y se volcará la vista en su archivo schema.rb por lo que se regenere si lo hace rake db:schema:load
Más información aquí: https://github.com/SchemaPlus/schema_plus_views#user-content-creating-views
Si está utilizando Postgres, puede usar Scenic para administrar las vistas de la base de datos en su aplicación de rieles. Al igual que Schema Plus, Scenic le dará create_view
. A diferencia de Schema Plus, Scenic también proporcionará un poco más de guía sobre la administración de versiones de la vista junto con el soporte para vistas materializadas.
Si está utilizando MySQL hay adaptadores mysql de terceros disponibles para su uso con Scenic, aunque no los he usado personalmente.
- 1. ¿Hay algo como "+ =" en SASS?
- 2. ¿Hay algo como MAMP para Ruby on Rails?
- 3. ¿Hay algo así como indicadores en Lua?
- 4. ¿Hay algo así como find_if en Java?
- 5. ¿Hay algo como malloc/free en java?
- 6. ¿Hay algo como inotify en Windows?
- 7. ¿Hay algo como NSDictionary en Android?
- 8. Benchmarking rails ActiveRecord Queries
- 9. Eliminar ActiveRecord en Rails 3
- 10. ¿Hay algo así como un modelo funcional?
- 11. ¿Hay algo así como WMI para Linux?
- 12. ¿Hay algo así como Codecademy para Java
- 13. ¿Hay algo como rubygems.org para bibliotecas scala
- 14. ¿Hay algo así como `last` for` map`?
- 15. ¿Hay algo así como "global ::" para VB.NET?
- 16. ¿Hay algo como .NET's T4 para Java?
- 17. ¿Hay algo así como bpython para Ruby?
- 18. ¿Hay algo como JRebel para .NET?
- 19. ¿Hay algo así como AutoMapper para Scala?
- 20. Múltiples suma (s) en ActiveRecord en Rails
- 21. ¿Hay algo así como Incanter para Haskell?
- 22. ¿Hay algo como jquery para WPF/XAML?
- 23. ¿Hay algo como/proc para las ventanas
- 24. Upsert in Rails ActiveRecord
- 25. ¿Hay algo así como auto para los métodos de clase?
- 26. Rails/Activerecord database field timezone
- 27. Ruby on Rails ActiveRecord: pluralization
- 28. SQL UNION con Rails ActiveRecord
- 29. ¿Hay algo en PHP como intermediario en Ruby?
- 30. ¿Hay algo así como i en rango (longitud) en PHP?
Echa un vistazo a este artículo: https://ideamotive.co/blog/materialized-views-ruby-rails-scenic/ – d3m0n