users
各ユーザーの詳細を含むテーブルがあります。users
条件 (年齢など) に基づいてテーブルから特定の行のみを含む新しいテーブルを作成したいと思います。レールでこれを行うにはどうすればよいですか?
質問する
105 次
1 に答える
1
移行を作成する必要があります。この移行では、最初に新しいテーブルを作成する必要があり、次に2つのオプションから選択できます。
- モデルを使用してデータを読み取り、rubyフィルターメソッドを使用してデータセットをフィルター処理し、残りのモデルを新しいモデルに変換して保存できます。ただし、現在のモデルを削除すると、後でこの移行を実行できなくなるため、これに反対することをお勧めします。(移行では古いモデルを使用してデータを読み取りますが、コードでは使用できなくなります)
純粋なSQLを使用します。
class XMigration < ActiveRecord::Migration def up execute <<-SQL CREATE TABLE new_table (id INTEGER AUTO_INCREMENT PRIMARY KEY, ...); INSERT INTO new_table (...) SELECT ... FROM old_table WHERE condition; SQL end def down raise ActiveRecord::IrreversibleMigration end end
于 2012-09-25T22:52:54.600 に答える