Para Rails 4
O gerador aceita o tipo de coluna como referência (também disponível como belongs_to
).
Essa migração criará uma user_id
coluna e um índice apropriado:
$ rails g migration AddUserRefToProducts user:references
gera:
class AddUserRefToProducts < ActiveRecord::Migration
def change
add_reference :products, :user, index: true
end
end
http://guides.rubyonrails.org/active_record_migrations.html#creating-a-standalone-migration
Para Rails 3
O auxiliar é chamado de referências (também disponível como belongs_to
).
Essa migração criará uma category_id
coluna do tipo apropriado. Observe que você passa o nome do modelo, não o nome da coluna. Active Record adiciona o _id
para você.
change_table :products do |t|
t.references :category
end
Se você tiver belongs_to
associações polimórficas , as referências incluirão as duas colunas necessárias:
change_table :products do |t|
t.references :attachment, :polymorphic => {:default => 'Photo'}
end
Adicionará uma coluna attachment_id e uma attachment_type
coluna de string com um valor padrão de Photo
.
http://guides.rubyonrails.org/v3.2.21/migrations.html#creating-a-standalone-migration