В документации говориться для has_one
:primary_key
Specify the method that returns the primary key used for the association. By default this is id.
Я так понимаю, когда модель использует данную связь, то в ссылаемой таблице осуществляется поиск по primary_key, который по default является id данной модели и которая в свою очередь имеет связь has_one
class Model_A
belongs_to model_b
end
class Model_B
has_one model_a
end
следовательно для атрибута modeL_a экземпляра класса Model_B будет идти поиск как
SELECT "model_a".*
FROM "model_a" WHERE "model_a"."model_b_id" = $1
ORDER BY "model_a"."id" ASC LIMIT 1 [["model_b_id", <Сюда попадает ID экземпляра класса Model_B>]]
Возможно ли каким-нибудь способом заменить вставку <> в запросе для модели содержащую связь has_one?
В чём суть primary_key в has_one если только как не переопределение названия primary key поля?
Возможно ли сделать так чтобы последующие связи ссылаемые на Model_B через has_one :through, так же подменивали вставку <> по необходимости?