Zmienna id

Na początku tworzymy sobie megaprosty skrypcik:

<%= id %>

no i teraz ktoś mi może powiedzieć co siedzi w zmiennej id i do czego to się używa?
To jest na tyle wysokopoziomowy język, że raczej śmieci z pamięci nie wchodzą w grę, a poza tym zmienna nie została zainicjowana. Na dane losowe też mi to nie wygląda.
Przypadkowo na to wpadłem, a informacje o tym dość trudno wygooglać :stuck_out_tongue:

Każdy z obiektów w Ruby ma metodę id (choć w zasadzie powinno się używać object_id). W skrypcie nie zdefiniowałeś zmiennej id. W takiej sytuacji interpreter szuka dalej (poza zmiennymi lokalnymi) i znajduje self.id. Trudno powiedzieć czym jest self w tym wypadku - zależy czy template jest ewaluowany przez Rails (w takim wypadku będzie to chyba anonimowa klasa pochodząca z ActionView::Base) czy z erb (wtedy pewnie będzie to id obiektu typu ERB).

Generalnie spróbuj odpalić:

<%= id %>
<%= self.id %>
<%= self.class.to_s %>

Powinno wypisać dwie takie same liczby i klasę obiektu.

Faktycznie teraz sobie odpaliłem w irb i trochę więcej widać.

code:1: warning: Object#id will be deprecated; use Object#object_id
=> 26201201369580[/code]