Bir yaratmanız gerekiyorsa, user_id
bir 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:migrate
hem bir user_id
sütun hem de bir dizin eklenecektir products
.
Mevcut bir sütuna, örneğin name
bir user
tabloya 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_column
Satırı silin ve geçişi çalıştırın.
Açıklanan durumda, rails generate migration AddIndexIdToTable index_id:integer:index
komut vermiş ve ardından add_column
oluş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