Rails использует столбец из другой модели activerecord в качестве внешнего ключа - PullRequest
0 голосов
/ 15 ноября 2018
class Model1
 #has an column "attr1"
end

class Model2
 #has an column "attr2"
end

class Model3
 #has an column "attr3"
 belongs_to :model2

 belongs_to my_model_1, class_name: 'Model1', primary_key: :attr1, foreign_key: "#{model2.attr2}-#{attr3}"
end

Я получаю следующую ошибку:

  `method_missing': undefined local variable or method `model2' for Model1 (call 'Model1.connection' to establish a connection):Class (NameError)

Есть ли способ использовать столбец из отношения own_to как часть foreign_key, как я пытаюсь сделать?

1 Ответ

0 голосов
/ 15 ноября 2018

Вы не можете передать динамическое значение в :foreign_key, поэтому вам придется написать его вручную, используя значение, выбранное для имени столбца:

belongs_to my_model_1, class_name: 'Model1', primary_key: :attr1,
                       foreign_key: "model2_attr2_attr3"

Вы можете просмотреть документы здесь .

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