外键是否可以是SQL函数而不是列?

时间:2011-09-14 04:09:16

标签: ruby-on-rails activerecord

我有2个表格,产品和代码。产品有一个code_str列。我可以使用products.code_str列的前两个字符从产品中找到代码。我尝试过这样的事情:

class Product < ActiveRecord::Base
  belongs_to :code, foreign_key: "substring(products.code_str from 1 for 2)", primary_key: :number
end

但它不起作用。我想在将来使用一些急切的加载,所以我想要使belongs_to关联工作而不是其他任何东西。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

有同样的问题。

最后添加:

belongs_to :code, foreign_key: :code_str_id, primary_key: :number

def code_str_id
  code_str[0..1]
end

优点:找到每个并使用include

缺点:使用include

时查询速度很慢