giovedì 3 maggio 2012

Hash e Array in Ruby / Debug in Rails 3

Hash

#Differenza tra un array ed un hash
hash = {title:'Snowboard',place:'Sahara'}
array = [evento_1,evento_2,evento_3]

#Hash metodi
hash = { :one => "uno", :two => "dos" }
assert_equal 2, hash.values.size
assert_equal __, hash.values.include?("uno")
assert_equal __, hash.keys.include?(":one")
assert_equal __, hash.values.class

La classe Hash è fatta di chiavi e valori.
Sia la chiave che i valori sono array che vengono tra loro associati.
Trattasi di un matrimonio di array.

L'esplorazione avviene con due metodi: le parentesi quadre [] e il metodo fetch.
Le due proprietà principali della classe Hash sono keys e value.
Entrambi se esplorate permettono di utilizzare il metodo .include?

* hash = Hash.new
* hash.size
* hash[:one] #prende l'elemento one
* hash.fetch(:one) #prendere l'elemento one, la differenza è che il fetch scatena un IndexError nel caso in cui si invochi una chiave non esistente
* hash.keys.size
* hash.keys.include?(:two)
* hash.values.include?("uno")
* Hash.new("default value") # quando viene esplorato una chiave non presente

Render Partial

Per caricare una vista parziale
<%= render nome_della_vista %>
Il nome della vista nel file system deve avere l'underscore davanti (ad esempio "_nome_della_vista.erb").
Il metodo render può accettare anche dei parametri aggiuntivi che permettono di specificare un layout per una specifica vista.

<%= render partial: nome_della_vista layout: 'layout_tuo' %>

Debug in Rails 3

Nella vista
debug variabile
Nel controller
logger.warn / logger.info etc.

Fonte: Ruby on Rails Guides · MrWebmaster · Ruby documentation