Nie możesz: musisz napisać własną logikę, aby sobie z tym poradzić. Railsy muszą znać twoją logikę biznesową i analizować zapytanie SQL, aby dowiedzieć się, którą tabelę wybrać i nie możesz tego zrobić domyślnie, musisz napisać ten kod samodzielnie.
Jednak pod numerem jest taka sztuczka, która znacznie ułatwi ci pracę. A co z obsługą tego na poziomie bazy danych? Sprawdziłem i wszystkie główne bazy danych obsługują aktualizowalne widoki .
Więc utworzyć nowy widok, nazwij go domains
i upewnić się, że tworzy unii wszystkich tabel domen (od A do Z), a następnie createa model:
class Domain
self.table_name = "your_view_name"
end
by to zrobić podstęp pod odczytywanie strony. Teraz, bazując na bazie danych, której używasz, możesz w ten sposób rozwiązać problem zapisu (z wyzwalaczami i podobnymi funkcjami DB), w przeciwnym razie musisz napisać własny kod dla części do zapisu, która prawdopodobnie będzie potrzebna uruchamiać nieprzetworzone zapytania.
Alternatywnie można sobie z tym poradzić na poziomie Ruby, tworząc wszystkie modele (DomainA
, DomainB
itd.) Ręcznie lub za pomocą generatora, a następnie tworząc wspólną klasę, która działa jako interfejs. Można też utworzyć te modele za pomocą metaprogramowania i ponownie mieć wspólną klasę, która działa jako interfejs.
Co powiesz na używanie ilala? –
Dlaczego, na Boga, podzieliłeś dane? Jest to błąd, chyba że masz doskonały powód. Bilans miliardów nie jest zbyt duży dla np. postresql. Pozwala na 32 TB tabel. Tak długo, jak twoje rekordy są 30KB lub mniej, jesteś gotowy do pracy. MySQL umożliwia wiele, znacznie większych tabel. – Gene
Proszę określić, z której bazy danych korzystasz - każde rozwiązanie będzie w dużym stopniu dotyczyć funkcji specyficznych dla DB. –