2011-09-14 38 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

相關問題