Bir yaratmanız gerekiyorsa, user_idbir kullanıcı tablosuna başvurduğunuz makul bir varsayım olacaktır. Bu durumda göç:
rails generate migration AddUserRefToProducts user:references
Bu komut aşağıdaki geçişi oluşturacaktır:
class AddUserRefToProducts < ActiveRecord::Migration
def change
add_reference :user, :product, index: true
end
end
Çalıştırıldıktan sonra tabloya rake db:migratehem bir user_idsütun hem de bir dizin eklenecektir products.
Mevcut bir sütuna, örneğin namebir usertabloya bir dizin eklemeniz gerekirse , aşağıdaki teknik yardımcı olabilir:
rails generate migration AddIndexToUsers name:string:index aşağıdaki geçişi oluşturacak:
class AddIndexToUsers < ActiveRecord::Migration
def change
add_column :users, :name, :string
add_index :users, :name
end
end
add_columnSatırı silin ve geçişi çalıştırın.
Açıklanan durumda, rails generate migration AddIndexIdToTable index_id:integer:indexkomut vermiş ve ardından add_columnoluşturulan geçişten satırı silmiş olabilirsiniz . Ancak, ilk geçişi geri almayı ve bunun yerine referans eklemeyi tercih ederim:
rails generate migration RemoveUserIdFromProducts user_id:integer
rails generate migration AddUserRefToProducts user:references