Ich muss eine Sicht in meiner DB erstellen. Ich weiß, dass ich ActiveRecord verwenden kann, um Tabellen mit der Methode create_table zu erstellen. Ich frage mich, ob es etwas Ähnliches wie create_table gibt, aber stattdessen eine Ansicht erstellt.Gibt es etwas wie eine create_view in ActiveRecord (Rails)?
Antwort
Nein. Dies ist einer der Punkte, für die ActiveRecord "eigenmächtig" ist. Es interessiert sich nicht besonders für die üblichen relationalen Datenbankfunktionen wie Ansichten, Fremdschlüssel und einige andere.
Die API documentation enthält eine Liste der verfügbaren öffentlichen Methoden.
Das Beste, was Sie tun können, ist schreiben Sie die CREATE
-Statement in Plain SQL, und verwenden Sie ActiveRecord::Base.connection.execute
.
Sie können dazu den Juwel von schema_plus verwenden!
https://github.com/SchemaPlus/schema_plus
Es ist eigentlich eine Gruppe von Edelsteinen, aber es enthält eine, die Ansichten betrifft.
Es bietet eine create_view
Methode, die Sie zu Ihren Migrationen hinzufügen und es wird die Ansicht in Ihre schema.rb Datei-Dump, so dass es, wenn Sie rake db:schema:load
Mehr Infos hier: https://github.com/SchemaPlus/schema_plus_views#user-content-creating-views
Wenn Sie Postgres verwenden, können Sie die Datenbankansichten in Ihrer Rails-Anwendung mit Scenic verwalten. Wie Schema Plus, Scenic gibt Ihnen create_view
. Im Gegensatz zu Schema Plus bietet Scenic auch ein wenig mehr Hilfestellung bei der Verwaltung von Versionen der Ansicht sowie Unterstützung für materialisierte Ansichten.
Wenn Sie MySQL verwenden, gibt es mysql-Adapter von Drittanbietern für die Verwendung mit Scenic, obwohl ich sie nicht persönlich verwendet habe.
- 1. Gibt es eine Möglichkeit, Rails ActiveRecord Attribute privat zu machen?
- 2. Gibt es etwas wie Selbst für Klassenmethoden?
- 3. Upsert in Rails ActiveRecord
- 4. Gibt es etwas wie NSDictionary in Android?
- 5. Gibt es etwas wie RhinoMocks in Java?
- 6. Gibt es eine Rails 4 Backports-Bibliothek?
- 7. Gibt es etwas wie eine erweiterbare Warteschlange in C#?
- 8. Gibt es so etwas wie eine Null bool in vb.net
- 9. Gibt es etwas gegen die bitnami.org Ruby/Rails/Redmine Stack?
- 10. Rails/ActiveRecord - AdapterNotSpecified, auch wenn es
- 11. Gibt es eine Abhängigkeitsinjektion in Rails?
- 12. Wie ActiveRecord :: RecordNotUnique in Rails ordnungsgemäß behandelt
- 13. Gibt es so etwas wie XML 2.0?
- 14. VBA - Gibt es so etwas wie Listen?
- 15. Gibt es so etwas wie "Unicode-Sortierung"?
- 16. gibt es etwas wie "oncall" Javascript-Methode?
- 17. Gibt es etwas wie ein funktionales Modell?
- 18. Wie eine NOT IN-Abfrage mit ActiveRecord/Rails auszudrücken?
- 19. Rails: ActiveRecord benutzerdefinierte Durchschnittsberechnung
- 20. Gibt es eine Konstante so etwas wie bit_in_byte (8)?
- 21. Gibt es so etwas wie eine automatische Zeilenhöhe?
- 22. Gibt es etwas wie GhostDoc für C++
- 23. Gibt es eine ergänzende Möglichkeit, etwas wie Mausereignisse zu erhalten?
- 24. Gibt es etwas wie WMI für Linux?
- 25. Gibt es etwas wie eine detaillierte Überlagerung für Bilder?
- 26. Gibt es eine Möglichkeit, etwas wie Rails Server - Sandbox zu tun?
- 27. Wie können Sie eine ActiveRecord-Abfrage in Rails bedingt erstellen?
- 28. Ist es möglich, Rails ActiveRecord nicht in Konditionsargumenten zu wiederholen?
- 29. Gibt es etwas wie Python-Export?
- 30. Gibt es etwas wie bpython für Ruby?
Werfen Sie einen Blick auf diesen Artikel: https://ideamotive.co/blog/materialized-views-ruby-rails-scenic/ – d3m0n