Jak na mój gust to title nie jest kluczem tablicy haszującej (rozumiem, że to masz na myśli mówiąc o tabelach), tylko atrybutem obiektu event, który znajduje się w tablicy hashującej things.
Jeśli o to chodzi, to powinieneś użyć składni things[:events].title
W pierwszym wywołaniu odwołujesz się do obiektu, który w haszu things ukrywa się pod kluczem :events, operator kropkowy pozwala Ci natomiast wydobyć atrybut title tego obiektu
Jeszcze jedna uwaga: w tego rodzaju przypadkach warto jest popróbować
zachowanie Rubiego w konsoli. Można wtedy bardzo szybko dojść do właściwego
rozwiązania.
Aby odpalić konsolę Rubiego wystarczy wpisać:
irb
Z przydatnych poleceń warto wymienić: object.inspect - dokonuje ‘inspekcji’ obiektu, tzn. wyświetla wartości jego pól, etc. object.methods - wypisuje wszystkie metody dostępne dla danego obiektu
To drugie warto stosować w następujący sposób
(object.methods - Object.methods).sort
Poznajemy wtedy metody specyficzne dla obiektu object. Jak przetestujesz każdą
z nich to możesz dużo dowiedzieć się o tym do czego one służą.
[quote=szef]Srednio dziala, gdy wpisuje things[:events].title. Wyskakuje blad:
undefined method `title’ for []:Array[/quote]
a nie things[:events].first.title ?
To zależy jaka dokładnie klasa Cię interesuje. Klasy wbudowane (typu Array, Hash, etc.) dostępne są od zaraz, tzn. możesz napisać
a = Array.new
a.inspect
...
Niektóre klasy rozprowadzane z Rubim dostępne są po załadowaniu odpowiedniego pakietu, np.
require 'rexml/node'
n = REXML::Node.new
n.inspect
Jeśli zaś chodzi Ci o klasy zdefiniowane w Twojej aplikacji Rails to trzeba wywołać skrypt script/console, który ładuje irb razem z wszystkimi klasami Twojej aplikacji.