あなたがユーザーテーブルを参照しているという合理的な前提があります。
class AddUserRefToProducts < ActiveRecord::Migration
def change
add_reference :user, :product, index: true
end
end
rake db:migrate
カラムの両方を実行した後、インデックスはproduct
テーブルに追加される。
rails generate migration AddUserRefToProducts user:references
このコマンドは、以下のマイグレーションを生成します。その場合、移行がなければなりません。
インデックスを既存の列に追加するだけで済みます。 user
テーブルのname
、以下の技術が有用であり得る:
class AddIndexToUsers < ActiveRecord::Migration
def change
add_column :users, :name, :string
add_index :users, :name
end
end
はadd_column
ラインを削除し、マイグレーションを実行する:
rails generate migration AddIndexToUsers name:string:index
は、以下のマイグレーションを生成します。
この場合、rails generate migration AddIndexIdToTable index_id:integer:index
コマンドを発行し、生成された移行からadd_column
行を削除できます。あなたがこれを起動することができ、将来的にあなたが一般的なインデックスを追加する必要がある場合は、
rails generate migration AddUserIdColumnToTable user:references
を呼び出すことができます
rails generate migration RemoveUserIdFromProducts user_id:integer
rails generate migration AddUserRefToProducts user:references
私は単に私のコンソールで実行します:レールは移行AddIndexToTableを生成しますか? – user1611830
これは可能ですが、上記のコードを反映させるために、後でその移行を編集する必要があります。 –
はい、ありがとうございます! – user1611830