Ruby on rails 如何创建自定义外键?

Ruby on rails 如何创建自定义外键?,ruby-on-rails,ruby,postgresql,activerecord,Ruby On Rails,Ruby,Postgresql,Activerecord,我正在构建一个RubyonRails应用程序,它将定期将数据转储到我的PostgreSQL安装中。现在我有两个实体,账户和地址 帐户有许多地址。到目前为止,外键关系是按照Rails的默认设置设置的,其中Addresses有一个名为account\u id的列。然而,Rails永远不会创建数据,它只是读取数据。正在转储数据的我的外部服务在我的帐户记录上创建一个名为masterID的唯一ID,并将该ID放入关联地址的associatedID列中 我需要Rails在查找相关地址时使用masterID字

我正在构建一个RubyonRails应用程序,它将定期将数据转储到我的PostgreSQL安装中。现在我有两个实体,账户和地址

帐户有许多地址。到目前为止,外键关系是按照Rails的默认设置设置的,其中Addresses有一个名为
account\u id
的列。然而,Rails永远不会创建数据,它只是读取数据。正在转储数据的我的外部服务在我的帐户记录上创建一个名为
masterID
的唯一ID,并将该ID放入关联地址的
associatedID
列中

我需要Rails在查找相关地址时使用
masterID
字段和
associatedID
字段


有人知道我会怎么做吗?

你可以试试这样的方法:

class Account < ActiveRecord::Base
      has_one :address , :foreign_key => 'masterID'
    end
类帐户'masterID'
结束

阅读“”,了解第4.1.2.5节下的更多信息。

是您可以在声明您的
有许多关联时指定
外键

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

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

不要说
Read“here”
,而是使用一些真实的文本,让读者知道他们在点击什么。请参阅“”和“”,以了解更多信息。现在,当我这样做时,它是否将在帐户上使用主ID,但它是否将该键存储在associatedID列中的地址表中?在这种情况下,您需要添加:primary_key=>'associatedID'等等,这真的可以吗?主键不是不同吗?您可以在模型中定义重写外键和主键。不在迁移文件中。