Указание имени столбца иностранного ключа клиента с использованием гема иностранца

У меня есть 2 модели, сотрудник и пользователь с отношением has_one, own_to. В пользовательской таблице есть столбец login, который должен быть только значением emp_id из таблицы employee. Я попытался захватить эту связь с помощью следующей миграции:

      class AddFkToUsers < ActiveRecord::Migration
            def change
            add_foreign_key( :users, :employees, :source_column => :login, :foreign_column 
         => :emp_id )
            end
        end

но когда я пытаюсь запустить эту миграцию, я получаю сообщение об ошибке:

    Mysql2::Error: Key column 'employee_id' doesn't exist in table: ALTER TABLE `users` 
    ADD CONSTRAINT `users_employee_id_fk` FOREIGN KEY (`employee_id`) REFERENCES 
   `employees`(id)/home/vasu/.rvm/gems/ruby-1.8.7-p371/gems/activerecord-
    3.2.9/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:245:in `query'

Я думал, что мог бы также указать имя внешнего столбца, это не возможно?

1 ответ

По крайней мере, для иностранца версии 1.6.0 я считаю, что правильный синтаксис для вашего случая:

add_foreign_key(:users, :employees, :column => 'login', :primary_key => 'emp_id')
Другие вопросы по тегам