2010-11-25 20 views
6

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)?

+0

Echa un vistazo a este artículo: https://ideamotive.co/blog/materialized-views-ruby-rails-scenic/ – d3m0n

Respuesta

6

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.

3

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.