是否可以使用字符串字段作为外键(使用ActiveRecord)?
实际例子:
我有2个型号:
class Book < ActiveRecord::Base
belongs_to :kind
end
class Kind < ActiveRecord::Base
has_many :books
end
我不想要在书表中使用通常的'kind_id'(整数),但我想使用'kind_code'(字符串)
我从未尝试过那样做。
:foreign_key => "kind_id"
是否足够? kind_id
怎么样? (我应该删除吗?)非常感谢 的Alessandro
答案 0 :(得分:0)
我不建议你这样做。如果您只是因为URL重写而需要它,您还可以重新声明模型中的to_param
方法,如下所示:
def to_param
"#{id}-#{kind_code}"
end
无论如何,可以像你说的那样使用替代foreign_key
,但仅使用foreign_key
是不够的。您还需要像这样添加primary_key
参数。
belongs_to :kind, :foreign_key => 'kind_code', :foreign_key => 'code'
您可以在文档中找到其他示例,只需搜索“foreign_key”=&gt; http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html