ActiveRecord で VIEW を使うときの注意点
備忘録。ここでいう VIEW は DB で CREATE VIEW AS .. するあれです。ActionPack とは関係ないです。試したのはすべてSQLiteです。
- とりあえずけっこう普通に使える。
- 例えば CREATE VIEW AS calculated_results をすると、CalculatedResult クラスから普通に読める。
- `id`問題(後述)は残るので
- view をさらに include で JOIN しようとすると落ちる
- `id`カラムがあるのを前提に t.id as t0_id とかいう SQL を発行するのでそんなカラムないよエラーになる。当然といえば当然。
- そもそも view の identifier てなんなんだろうなぁ。
- 実利面だけを考えれば、全レコード NULL のカラムを用意すればよろし。
- rake db:schema:dump では抜けない
- テストのときは config/environment.rb で下記を設定すること
config.active_record.schema_format = :sql
- migrate するときは migration ファイルでゴリッと書いてますが
def self.up execute <<-SQL CREATE VIEW hoges AS SELECT ... SQL
今日のところはさしあたりこんなところで。