Adicionando Foreign Keys no Rails

Existem várias formas de se adicionar foreign keys no rails, mais uma das que eu acho mais simples é utilizando o plugin migration_helpers.

A instalação funciona como qualquer outro plugin do rails:
script/plugin install git://github.com/patientslikeme/migration_helpers.git

Depois disso edite seu arquivo de migração. Por exemplo, supondo que você tenha uma classe/tabela chamada Aluno e que esta tabela está relacionada a uma classe/tabela turma , para adicionar uma foreign key deve-se fazer o seguinte:

class CreateAlunos < ActiveRecord::Migration
 def self.up
     create_table :alunos do |t|
      t.string :nome, :null => false
      t.date :datanascimento, :null => false
      t.integer :turma_id, :null => false

      t.timestamps
    end

    add_foreign_key :alunos, :turma_id, :turmas
  end

  def self.down
    drop_table :sprints
  end
end

Quando rodar o rake db:migrate já será gerado o código SQL para a criação da foreign key no banco de dados.

Essa é somente uma funcionalidade do plugin migrate_helpers. Ele tem uma série de outros métodos muito legais como por exemplo para gravar dados para uma tabela.

Espero que tenha ajudado.