has_many :through - dostać się do danych

Wywal wszystko co masz, napisz co chcesz by to robiło, opisz dokładnie przypadki użycia, a na pewno ci tutaj napiszemy jakie masz stworzyć tabelki, relacje itp.

tak jak pisałem wcześniej to nie mają być zakłady ale typer.

tabela matches - w spotkaniu czyli match.name będzie druzyna1 - druzyna2 data spotkania - wszystko w jednym polu. ; oraz wynik rzeczywisty matches.outcome 1 - gdy wygra pierwsza drużyna, 2- gdy druga, 3 gdy remis, przy czym nieistotny jest rezultat bramkowy, ani kto strzelił itp.

tabela users - użytkownicy czyli Ci co będą typować (penie jakiś plugin docelowo, albo integracja ze stroną, chociaż to może będę wstanie wykonać za jakiś czas dopiero ) ze szczególnym naciskiem na ‘za jakiś’ :slight_smile:

tabela bets, gdzie będą dodawane typy.

tabele z widokami i modelami generowane przez scaffold, (tabele i modele w pierwszym poście.)

Widoku indexu bet:

[code=ruby]


Spotkanie
Użytkownik
Typ <% @bets.each do |bet| %> <%=h bet.match.name %> <%=h bet.user.name %> <%=h bet.preresult %>[/code] typowanie to analogicznie jak w przypadku wprowadzania rezultatów więc: 1 - wygrana pierwszej drużyny, 2 - drugiej, 3 - remis.

a te męczarnie w postach wyżej mają dotyczyć wyświetlenia przez użytkownika trafionych przez siebie wyników dlatego ‘bets.preresult = matches.outcome’
gdzie preresult to - typowany wynik wg założeń 1,2 albo 3, a outcome - wynik rzeczywisty też jako 1,2 albo 3.

Co prawda jak będą zliczane trafnie wytypowane wyniki to jeszcze nie wiem, no ale też takie coś ma być.

No to jak dla mnie powinienes miec

Tabelka:
User - cos do kont np Authlogic, mozesz to jednym poleceniem z nifty_scaffold zrobic (user ma wiele meczy i ma wiele zakladow ale poprzez mecz)
Mecz - Talebka z meczem, id, druzyna_1, druzyna_2, wynik
Zaklad - Nalezy do User, User ma zakladow wiele, Zaklad ma Mecz, Mecz ma wiele zakladow, obstawiany_wynik

i wtedy juz wszystk oinne to proste i latwe zlaczenia typu

zaklady_usera = current_user.zaklady.all

i tak dalej. To juz podstawy, wiec bez problemu pojdzie.

No z grubsza tak to powinno wygladac tak na oko.

wiec zabiorę się za to jeszcze raz wg wskazówek

pisz na bierzaco co i jak to bedziemy nad tym czuwac ;]

a więc, żeby na początek nie zepsuć bazy to takie tabele i takie pola:

Tabela Users:
username
email
crypted_password
password_salt
persistence_token
bet_id

Tabela Matches:
team_1
team_2
result
round_id
user_id
bet_id
match_id

Tabela Bets:
user_id
match_id
preresult
status (active or not)

Tabela Rounds:
name
date

jakieś uwagi ? coś poprawić ?

cos znowu pomieszałeś

Na poczatek co to jest te Rounds (Rundy w meczach? jaka jest relacja jej Mecz ma wiele rund | runda nalezy do meczu?)

Nie rozumiesz tych id pol chyba pchasz je tam gdzie nie trzeba raczej, jak dla mnie powinno być:

Tabela Users:
username
email
crypted_password
password_salt
persistence_token

Tabela Matches:
user_id
team_1
team_2
result

Tabela Bets:
user_id - mozna z tego zrezygnowac bo mozesz zrobic zlaczenie przez mecz
match_id
preresult
status (active or not)

Tabela Rounds: (runda do czegos zalezy, jak mecz ma wiele rund to wtedy tutaj jeszcze match_id, ale nie bardzo wiem co to ta runda jest wiec to opisz.
name
date

Bymy się rozumieli daj opis relacji typu:
Mecz ma wiele zakładów, zakłady należą do meczu

i tak dalej

dodawałem cośtam_id po obu stronach łączenia dlatego tak dużo się tego porobiło - tak na wszelki wypadek jakby w przyszłości mogło się przydać :slight_smile:
Runda ma wiele meczów (to chodzi o kolejkę ligową tak na nasze). Mecze należą do rundy. [to jest po to, bo tak sobie pomyślałem, że w jednej kolejce jest kilka meczów to przy każdym bym musiał pisać date, a tak ustali się rundę w której będzie data, a do rundy przypisze mecze.

znaczy będzie :

Tabela Matches:
user_id
round_id
team_1
team_2
result

no ok, ps nie dawaj zadnych pol na sile do przodu do tego masz pozniej migracje, by latwo dodawac i kasowac niepotrzebne rzeczy. Dodaj wszytsko napisz relacje w modelach i w consoli sprawdz zlaczenia. Przemysl przypadki uzycia (use case) czyli w jakich sytuacjach aktor (czyli user twoj) bedzie wystepowal. Czyli ze bedzie robil zaklady … itp To da ci spis zlaczen i operacji jakie beda na bazie danych wykonywane. Powinno sie one dac latwo robic. Jesli nie to zastanawiasz sie jak inaczej to zrobic.

no to się powoli zabieram do działania, dzieki @gotar,

jakby co to wrzuce na githuba jak bedę już coś miał - bo jak zaś pojawią się problemy to łatwiej będzie to omawiać.

no jak by co wam na mail, bedzie szybcieji latwiej pewnie

[code=ruby]<% @bets.each do |bet| %>

<%=h current_user.username %> <%=h bet.match_id %> <%=h bet.preresult %> <%=h bet.status %> <% end %> [/code] próbuje wyświetić zakłady usera, powinno być @user.bets.find(:all) ale jak się dostać zeby wyświetlić np. bet.match_id jako match_id z tabeli matches ?

powino być @user.bets
jak już

bet.match.id