Я пишу довольно простой веб-интерфейс для базы данных счетов / клиентов / контрактов.
Я хотел бы иметь следующую структуру для моих моделей:
class Invoice < ActiveRecord::Base
set_table_name 't10_invoices'
set_primary_key 'id_invoice'
has_one :client
end
class Client < ActiveRecord::Base
set_table_name 't20_clients'
set_primary_key 'id_client'
has_many :invoices
end
Проблема в том, что у меня следующая структура базы данных:
Tables:
t10_invoices:
id_invoice - primary_key
id_contract - foreign_key
t12_contracts:
id_contract - primary_key
t15_contracts_clients
id_client - foreign_key
id_contract - foreign_key
t20_clients
id_client - primary_key
Существует соотношение 1-1 между t20_clients
и t12_contracts
до t15_contracts_clients
и существует отношение 1-n между t20_clients
и t10_invoices
.
В чем разница между :foreign_key
и :association_foreign_key
?
Проблема в том, что я не могу изменить структуру базы данных, и я совершенно заблудился в переопределении имен таблиц, внешних ключей, join_foreign_keys и т. Д.
Я хотел бы простой способ найти клиентов счета-фактуры обычным способом Rails Invoice.find(:first).client
Буду признателен за любые предложения и помощь.