Возможно ли, чтобы внешний ключ был функцией SQL вместо столбца? - PullRequest
1 голос
/ 14 сентября 2011

У меня есть 2 таблицы, продукты и коды.Продукты имеют столбец code_str.Я могу найти код из продукта, используя первые 2 символа столбца products.code_str.Я пытался сделать что-то вроде этого:

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

Но это не работает.Я хотел бы использовать некоторую нетерпеливую загрузку в будущем, поэтому я подумал о том, чтобы заставить ассоциацию принадлежать принадлежать вместо какой-либо другой.

1 Ответ

0 голосов
/ 11 июля 2012

Была такая же проблема.

В конце добавлено:

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

def code_str_id
  code_str[0..1]
end

Плюсы: находит каждый и работает с include

Минусы: запросы медленные при использовании include

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...