如何创建自定义外键?

时间:2013-12-12 15:52:06

标签: ruby-on-rails ruby postgresql activerecord

我正在构建一个Ruby on Rails应用程序,该应用程序会定期将数据转储到我的PostgreSQL安装中。现在我有两个实体,帐户和地址。

帐户有很多地址。到目前为止,外键关系是在Rails默认设置时设置的,其中Addresses有一个名为account_id的列。但是Rails永远不会创建数据,它只是会读取它。我的外部服务转储数据会在我的帐户记录中创建一个名为masterID的唯一ID,并将该ID放入相关地址的associatedID列。

在查找关联的地址时,我需要Rails使用masterID字段和associatedID字段。

有谁知道我会怎么做?

2 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

class Account < ActiveRecord::Base
      has_one :address , :foreign_key => 'masterID'
    end

请阅读“Active Record Associations”,了解有关4.1.2.5节的更多信息。

答案 1 :(得分:0)

是的,您可以在声明foreign_keys关联时指定has_many

class Account < ActiveRecord::Base
  has_many :addresses, foreign_key: 'masterID'
end

has_many docs中有更多信息(请查看选项)。