Może ktoś mi wskaże najlepszy kierunek jak zabrać się za takie coś:
Mam dwie tabele - letters (w niej a, b, c) i numbers (1, 2, 3) plus tabela results (a1, a2, a3, b1…)
i teraz powiedzmy wchodzę na listę letters i wybieram z niej b, zapisuję (tabela items?)
później idę do listy numbers i wybieram 3, zapisuję (tabela items?)
i teraz dzięki temu, że mam wybrane b, 3 dostaję wynik z results, w której będą przechowywane informacje, co ma z niej być wyciągnięte jeżeli user wybierze letters i numbers b i 3, czyli jakiś element b3.
Jak połączyć więc modele letters i numbers z results?
Rozumiem, że chodzi przede wszystkim o wyciągnięcie odpowiedniego resultsa na podstawie lettera i numbera. Do tego powinno wystarczyć coś w stylu:
Result.find_by_letter_id_and_number_id(2, 1)
Połączenie:
class Result < ActiveRecord::Base
belongs_to :letter
belongs_to :number
end
…jest w tym przypadku mało potrzebne, ale może się przydać np. w panelu admina (przy dodawaniu nowych resultsów).
Przy okazji - jeśli letters i numbers to rzeczywiście “a”, “b”, … i 1, 2, … to może nie potrzeba tworzyć dla nich własnych tabel. Selecty można zbudować z:
options_for_select [1, 2, 3]
options_for_select ["a", "b", "c"]
zamienić letter_id => letter i number_id => number w tabeli results i wyszukiwać result przez:
Result.find_by_letter_and_number("a", 1)
A do zapisywania wybranej przez użytkownika litery i cyfry nie potrzebujesz nowej tabeli tylko (jeśli odbywa się to etapowo) sesji.