2

私は RoR3.2 を使用しており、現在、多数のモデル オブジェクトがあります。私がやりたいことの 1 つは、mysql ビューを作成することですが、どこに配置したかわかりません。

class CreateQv < ActiveRecord::Migration
  def up

    execute <<-SQL
      drop view qv
    SQL

    execute <<-SQL2 #abbreviated view 
create VIEW qv AS select locations.name AS val from locations where (locations.is_enabled = 1) union select concat(menu_items.header,' ',menu_items.detail) AS val from menu_items where (menu_items.is_enabled = 1)
    SQL2
  end
end

そして私はそれを介して更新します

rake db:reset

しかし、それはテーブルを作成しますが、その理由はわかりません。これはビューを作成する適切な方法ですか? はいの場合、なぜこのテーブルが作成されたのですか?

どうも

4

1 に答える 1

0

関連するテーブルを更新するたびに更新される疑似テーブルを作成するビューの正しい動作です。私への質問は、なぜ Rails アプリのビューを作成するのかということです。私が認識しているビューを作成する唯一の理由は、特定のユーザーにデータへのフル アクセスを拒否することです。しかし、Rails アプリでは、誰に何を表示し、何を変更できるかを制御します。

私はリレーショナル データベースにあまり詳しくないので、間違っているかもしれません。

編集:新しい場所を作成してビューで探すことで、ビューが機能するかどうかをテストできます

于 2013-05-04T11:04:52.653 に答える