2010-11-25 6 views
6

DBにビューを作成する必要があります。私は、ActiveRecordを使ってcreate_tableメソッドを使ってテーブルを作成できることを知っています。私はcreate_tableと同様のものがあるのだろうかと思うが、代わりにビューを作成する。ActiveRecord(Rails)のcreate_viewのようなものはありますか?

+0

この記事をご覧ください:https://ideamotive.co/blog/materialized-views-ruby-rails-scenic/ – d3m0n

答えて

6

いいえこれは、ActiveRecordが「熟考」されていることの1つです。ビュー、外部キーなどの一般的なリレーショナルデータベース機能はあまり気にしません。

API documentationには、利用可能なパブリックメソッドのリストが含まれています。

CREATE文をプレーンSQLで記述し、ActiveRecord::Base.connection.executeを使用することをお勧めします。

2

これを行うにはschema_plus gemを使用できます。

https://github.com/SchemaPlus/schema_plus

それは実際に宝石のグループだが、それは、ビューに関連するものを含んでいます。

それはそれはあなたが行う場合は再作成されますように、あなたの移行に追加することができますし、 それはあなたのschema.rbファイルにビューをダンプしますcreate_view方法を提供rake db:schema:load

ここ

さらに詳しい情報:https://github.com/SchemaPlus/schema_plus_views#user-content-creating-views

3

Postgresを使用している場合は、Scenicを使用して、レールアプリケーションのデータベースビューを管理できます。 Schema Plusと同様、Scenicはcreate_viewを提供します。 Scenic Plusは、Schema Plusとは異なり、ビューのバージョンの管理とマテリアライズドビューのサポートに関するもう少しのガイダンスも提供します。

MySQLを使用している場合、私は個人的に使用していませんが、Scenicで使用できるサードパーティ製のmysqlアダプタがあります。

関連する問題