2

可以将 ActiveRecord 的主键覆盖为字符串,并具有自定义类型,例如:

create_table :system_currencies, :primary_key => 'iso_code' do |t|
      t.column :iso_code, :string, :limit => 3
end

但是如何在其他引用它的模型中使用这个表/模型呢?对于引用,ActiveRecord 总是期望外键列以“_id”结尾并且是一个整数值。

这是真的吗?在 SystemCurrency 使用字符串 iso_code 作为主键的情况下,如何从 Order 模型中引用此类 SystemCurrency 模型?

4

1 回答 1

4

您可以在联接上指定主键。例如:

class Order < ActiveRecord::Base
  belongs_to :system_currency, :primary_key => "iso_code"
end 

更多信息可以在 Rails API 中找到:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-belongs_to

这是你所追求的还是我误解了你的问题?

于 2012-06-02T02:09:50.290 回答