Dzieki za odpowiedz, ladnie dziala:)
Ale mam pytanie do tego, bo rails’y ogolnie mowi, o tym, aby czesc biznesowa zalatwiac w modelu. Ale patrzac na to wystarczy to zrobic w kontrolerze
i wtedy zawsze to mniej kodu.
Pytanie - która metodyke stosowac? (model, kontroler, widok), czy (kontroler, widok) ?
OK rozumiem, ze w modelu.
A pytanie drugie, jak mam wiecej pol do dodania
np time i point
to w modelu moge zrobic tak
[code]def self.sumujTime
sum(‘time’)
end
def self.sumujPoint
sum(‘point’)
end[/code]
a w kontrolerze wywolywac sumujPoint i sumujTime
A nie mozna tego jakos polaczyc(aby 1 metoda liczyla mi odzielnie pkt i time) ?
Bo zaluzmy bede mial 20 pol to model i kontroler mi sie bardzo rozrosnie:)
ciekawe rozwiaznie co do modelu,
w controlerze 2 zmiennej dalbym tylko inna nazwe bo teraz rezultatem = suma time + suma point. (tak mysle)
i teraz wyszlo thin model, fat controller;p
@statisticHome = StatisticPlayer.find(:all, :select => 'statistic_players.*', :from => ['statistic_players, games, players'] ,
:conditions => ['statistic_players.game_id = games.id AND statistic_players.player_id = players.id
AND games.home_team_id = players.team_id AND games.id = ? ', @game.id ])
oraz @statisticAway, teraz w widoku
<% @statisticHome.each do |statistic_player| %>
<%= statistic_player.point %></td>
<%= statistic_player.time %></td>
to samo dla druzyny przeciwnej, teraz chcialbym zrobic sume np. ‘point’ dla 1 druzyny, a nastepnie dla 2ej.
Jak napisac ta metode w modelu?
przykladowo jakbym dal tak
def self.sumujPoint
sum('point')
end
a w kontrolerze tak
@point = StatisticPlayer.sumujPoint
to otrzymam sume point dla obydwu druzyn. (jednak to mnie nie interesuje)
najbardziej prymitywne rozwiazanie (tez mi sie nie podoba):
jest takie, ze w widoku daje zmienna @suma = 0, nastepnie @suma += statistic_player.point, a pozniej moge wywolywac ta @suma.
Ps. wiem musze przeczytac ksiazke z kolofem i bedzie mniej banalnych pytan;)
Z gory dzieki za sugestie.
sumujPoint to ciekawa nazwa dla metody, łączy w sobie prostotę zrozumienia (sumuj vs. sum - przecież nie chodzi o suma - rybę) oraz dobrze brzmiący angielski Point (sumujPunkt brzmiałoby lamersko Lepiej przeczytaj “Agile”, w książce z kilofem nie znajdziesz odpowiedzi ani wskazówek jak rozwiązać powyższy problem
no tak, ale nazwa metody nie naprawde nie ma znaczenia
Poza tym, tam jest napisane 'przykladowo jakbym dal def… ’
ps. a moze ktos mi podpowie, jak rozwiazac ten problem;) -> zanim przeczytam ‘Agile’…
ps2. ale jak ktos nie wie, albo chce sobie nabijac tylko ilosc posow (typu przeczytaj Agile = biblia) to niech nawet nie odpowiada;)
[quote=666bialy666]no tak, ale nazwa metody nie naprawde nie ma znaczenia
Poza tym, tam jest napisane 'przykladowo jakbym dal def… '[/quote]
Uwierz, naprawdę ma znaczenie.
[quote=666bialy666]ps. a moze ktos mi podpowie, jak rozwiazac ten problem;) -> zanim przeczytam ‘Agile’…
ps2. ale jak ktos nie wie, albo chce sobie nabijac tylko ilosc posow (typu przeczytaj Agile = biblia) to niech nawet nie odpowiada;)[/quote]