簡體   English   中英

使用foreigner gem指定客戶的foreignkey列名稱

[英]specifying customer foreignkey column name using foreigner gem

我有2個模型,員工和用戶具有has_one,belongs_to關系。 用戶表具有“登錄”列,該列僅需為employee表中的“ emp_id”值。 我嘗試通過以下遷移來捕獲這種關系:

      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.6.0,我認為適合您的情況的正確語法是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM