2013-10-15 21 views
0

我有2个模型,员工和用户has_one,belongs_to的关系。用户表具有“登录”列,该列仅需要来自员工表的'emp_id'值。我试图捕捉与下面的迁移这种关系:使用外国人宝石指定客户foreignkey列名

 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' 

我想我也能指定的外国列名,这是不可能的?

回答

0

至少对于外国人1.6.0版本我认为正确的语法,您的情况是:

add_foreign_key(:users, :employees, :column => 'login', :primary_key => 'emp_id')