[numeracja] pytanie

Witam,
mam w widoku

[code] <% for score in @tables %>

<%= @place += 1 %> <% end %>[/code] w kontrolerze ustawilem @place = 0

Jak to mozna zrobic ladniej(wywalajac ta zmienna i korzystac np z lenght) ?
Wiem, ze banal, ale mi nie wyszlo…

Nie mam zielonego pojęcia co chcesz osiągnąć. Domyślam się jedynie, że może each_with_index Ci pomoże.

może mdetoda each_with_index znajdująca się w module Enumerable? http://apidock.com/ruby/Enumerable/each_with_index

znaczy chcialbym miec takie cos

for i = 1 ; i <= @tables.length ; i++

ale w rubym ; )

pytanie 2.
mam w bazie 2 pola A i B
zakladajac ze A = 20 i B = 0, s = A / B to wynika ze s = null

jak sprawdzic ta wartosc czy nie jest null, a jak jest to przypisac do niej A ?

[teoria] <% if ( A / B ).null? %> <% s = A %> <% else %> <%= s %>
Z gory dzieki

Co do pierwszego pytania to użyj metody each_with_index, czyli mniej więcej tak:

<% @tables.each_with_index do |score, place| %>

<%= place + 1 %> <% end %>

Przez zero dzielić nie można:) Jeśli spróbujesz dostaniesz wyjątek ZeroDivisionError. Więc raczej sprawdzaj czy B nie jest zerem.
<% if B == 0 %>
<% s = A %>
<% else %>
<%= A / B %>

Jeśli chcesz sprawdzić czy jakaś wartość jest nil (w Ruby jest nil zamiast null) masz metodę “nil?” którą używasz tak: s.nil?

Było, zakop. :slight_smile:
http://rubyonrails.pl/forum/t588-Petla-for-w-rubym

Czemu te przykłady podajecie w erb? Po pierwsze zaciemniacie proste przykłady tymi procentami, a po drugie jeśli w widokach występuje dużo obliczeń, to może to znak, żeby przenieść je gdzieś indziej? Na przykład do helperów, albo modelu? :slight_smile: