Modyfikacja tabelki BD via http

Witam, to mój pierwszy post ale zapewniam że nieostatni =)

Chciałbym się dowiedzieć czy jest możliwość edycji tabeli bazy danych ‘w locie’ sprowokowaną przez np. formularz webowy.
Co mam namyśli :
Użytkownik chce dodać kolumnę ‘dwa’ : string do tabeli ‘liczby’ (Kolumn może być ‘n’ ).
Moja wiedza nie jest powalająca w tym temacie ale czy dało by się to zrobić.
Próbowałem dodać do pliku z migracją metodę:

def dodaj add_column :dwa, :string end
następnie wywołać ją w kontrolerze:

CreateLiczby.dodaj

Oczywiście nie działa.

czy robisz aplikację która będzie zarządzała strukturą i zawartością bazy danych (np. coś jak PhpMyAdmin)? Jeśli tak, to użyj sterownika do bazy danych a nie ActiveRecord. W przeciwnym wypadku nie rób tego, bo prawie napewno jest to złe. Z technicznej strony – nie widzi Ci tej kolumny bo ActiveRecord nie przeładowuje definicji kolumn tabelek, robi to tylko raz – przy pierwszym odniesieniu się do klasy modelu.

ActiveRecord::Migration.add_column ...

Rozwiązanie jak najbardziej działające, Dzięki !!!

Aha, czyli jednak zadziała. Jesteś pewien że modyfikowanie tabeli jest dobrym rozwiązaniem?

Jak najbardziej oto mi chodziło, cała moja koncepcja się na tym opiera.
Dodaja kolumny np. liczba1 , liczba2, liczba3 , do tabeli liczby mogę się do nich teraz podobierać za pomocą

Liczba.send('liczba'+iterowanaWartosc)

(kod pisany z głowy zapewne niepoprawny).
Dokładnie o taki zabieg mi chodziło.

Nie prościej, lepiej i bezpieczniej wykorzystać jakichś dodatkowy model?

Zapewne dałoby się zaprojektować taką strukturę bazy żeby to wszystko było super-ekstra znormalizowane bez żadnych ekscentrycznych rozwiązań, ale prawdę mówiąc uczę się Railsa i staram się jak najbardziej skomplikować sobie życie.
To wszystko po to żeby jak najwięcej się nauczyć.

Hmm… mógłbym też dodawać modele zamiast kolumny do bazy , ale nie mam pojęcia jak to robić nie-konsolowo.

#not ready for production :wink:

Mozna uzyc mongo czy czegos podobnego. Ze wzgledu ze nie ma migracji mozna dopisywac pola bezposrednio w modelu lol