2013-10-15 35 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')