2011-09-14 27 views
1

我有2个表格,产品和代码。产品有一个code_str列。我可以使用products.code_str列的前2个字符从产品中找到代码。我试过这样做:外键是否可能是SQL函数而不是列?

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

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

任何想法?

回答

0

有同样的问题。

在最后补充道:

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

def code_str_id 
    code_str[0..1] 
end 

优点:发现每工作与包括

缺点:查询使用包括

+0

这是唯一的替代工作,我发现这样的时候很慢远。但性能影响并不值得。谢谢! – Lonecat

相关问题