可以将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模型?
答案 0 :(得分:4)
您可以在联接中指定主键。例如:
class Order < ActiveRecord::Base
belongs_to :system_currency, :primary_key => "iso_code"
end
可以在http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-belongs_to
的Rails API中找到更多信息这是你所追求的还是我误解了你的问题?