homeASCIIcasts

Episode Archive

269 Eredietarità dei template
A partire da Rails 3.1 l’eredietarità dei controller puòessere applicata anche alle view. In questo episodio vi mostrerò come usare un template condiviso da tutte le views, e come analizzare il cammino della richiesta per sovrascrivere dei template in base al sottodominio.
268 Concetti base in SASS
SASS estende CSS introducendo variabili, annidamento, mix-ins e altro. In questo episodio mostrerò come convertire un semplice CSS in SASS in una applicazione Rails 3.1.
267 Concetti base in Coffeescript
Coffeescript ti permette di scrivere codice Javascript in maniera elegante e coincisa. In questo episodio tradurremo codice Javascript in Coffeescript in una applicazione Rails 3.1.
235 OmniAuth - Parte 1
OmniAuth è un modo semplice per aggiungere diversi servizi di autenticazione alla vostra applicazione. In questo episodio cominceremo ad integrarlo con Devise.
234 Simple Form
Simple Form è un modo pratico per generare form con molte opzioni per personalizzare il markup generato.
233 Conosciamo Devise
Janrain Engage (aka RPX) rende possibile il supporto a molte soluzioni di autenticazione attraverso un unico servizio.
232 Esploriamo il routing di Rails 3 (parte 2)
In questo episodio continuiamo a guardare nel router di Rails 3 esaminando la classe Mapper.
231 Esploriamo il routing di Rails 3
Come funziona internamente il routing di Rails 3? In questo episodio vi giuderemo attraverso il codice di Rails che rende possibile il routing.
230 Risorse ereditate
Le risorse ereditate semplificano i controller RESTful, mettendo a disposizione action di default che possono essere personalizzate mediante specializzazione.
229 Fare polling per verificare modifiche
Se i vostri dati cambiano frequentemente lato server, può anche essere utile mostrare automaticamente queste modifiche all'utente. In questo episodio vi mostreremo come farlo, facendo polling con jQuery.
228 Colonne di tabelle ordinabili
In questo episodio vi mostreremo come rendere ordinabile una tabella di elementi, cliccando su di un link o sulla testata delle colonne.
227 Aggiornamento a Rails 3 - Parte 3
In questo episodio concludiamo questa serie sull'upgrade a Rails 3, rimuovendo tutti i warning di deprecazione e sistemando alcuni problemi sulle viste.
226 Aggiornamento a Rails 3 - Parte 2
Qui continuiamo l'aggiornamento di un applicazione a Rails 3, creando le nostre specs ed approfondendo il plugin rails_upgrade.
225 Aggiornamento a Rails 3 - Parte 1
Nella prima parte di questa serie sull'aggiornamento delle applicazioni da Rails 2 a Rails 3, cominceremo installando Rails 3.0 Release Candidate in un ambiente pulito. Il plugin rails_upgrade ci aiuterà poi a capire cosa avrà bisogno di un aggiornamento.
224 Controller in Rails 3
Questo episodio tratta dei cambiamenti ai controller in Rails 3, compreso le notifica flash embedded, i cookie permanenti e la respond_with.
223 Grafici
Ci sono un sacco di librerie che aiutano a creare grafici. In questo episodio vi mostro come integrare Highcharts in una applicazione Rails.
222 Rack in Rails 3
Il router in Rails 3 è completamente compatibile con Rack. Impariamo come includere Sinatra in una applicazione, gestendo le ridirezioni, e migliorando le prestazioni con Rails Metal.
221 Sottodomini in Rails 3
E' ora possibile aggiungere sottodomini a Rails 3 senza la necessità di usare plugin esterni. Impariamo come in questo episodio.
220 PDFKit
La generazione di PDF da Ruby può richiedere parecchio lavoro. Piuttosto, considerate la possibilità di generare i PDF a partire dall'HTML usando PDFKit.
219 Active Model
In Rails 3 le funzionalità non legate al database di Active Record sono state estratte nelle classe Active Model. Ciò vi permette di aggiungere in maniera pulita le validazioni ed altre feature a modelli non persistenti (privi di tabella).
218 Creare generatori in Rails 3
I generatori in Rails 3 sono stati riscritti per far uso di Thor, il che significa che il codice usato per scrivere un generatore è un po' diverso rispetto a Rails 2. In questo episodio imparerete un nuovo modo per creare dei generatori per Rails 3.
217 Wizard Form
In questo episodio creeremo una form multipasso, detta anche wizard, da zero.
216 Generatori in Rails 3
I generatori in Rails 3 sono stati completamente riscritti per essere più modulari. Questo permette di personalizzare qualunque generatore per adattarlo alle vostre specifiche preferenze.
215 Query avanzate in Rails 3
In questo episodio impariamo alcune tecniche avanzate sui named scope e presentiamo Arel.
214 A/B Testing con A/Bingo
L'A/B testing (detto anche Split Testing) è una tecnica per testare versioni alternative di un'applicazione e capire quali di queste sia la più efficace.
213 Calendari
Se le date giocano un ruolo importante nella vostra applicazione, valutate di aggiungere un selettore di date o una vista calendario come viene illustrato in questo episodio.
212 Refactoring e Dynamic Delegator
Impariamo come fare il refactoring di un insieme di query condizionali Active Record usando un Dynamic Delegator.
211 Validazioni in Rails 3
Rails 3 offre molte nuove aggiunte alla validazione. Qui scoprirete come creare un partial per i messaggi di errori personalizzati, come usare l'introspezione sulle validazioni e come semplificare validazioni complesse sul modello.
210 Personalizzare Devise
In questo episodio continuiamo ad esplorare Devise focalizzandoci sulla personalizzazione delle sue viste, sul routing e sulle validazioni.
209 Introduzione a Devise
Devise è una soluzione completa per l'autenticazione che gestisce per voi tutta la logica dei controller e delle viste. Imparate a configurarlo in questo episodio.
208 Blocchi ERB in Rails 3
Rails 3.0 beta 3 è uscito e gestisce in maniera differente i blocchi nei template erb. Scoprite come in questo episodio.
207 Evidenziazione del codice
Tre popolari alternative per l'evidenziazione del codice nelle applicazioni Rails sono messi a confronto in questo episodio: CodeRay, Ultraviolets e Pygments.
206 Action Mailer in Rails 3
Action Mailer è stato riscritto per Rails 3, fornendo un API molto più chiara con l'uso del gem Mail.
205 JavaScript non appariscente
Rails 3 fa grande uso di JavaScript non appariscente, aiutandoci a mantenere conuti e comportamento separati.
204 Protezione XSS in Rails 3
Nelle precedenti versioni di Rails le applicazioni erano facilmente esposte ad attacchi di cross-site scripting. Rails 3 risolve questo problema e automaticamente fa l'escape dell'output.
203 Routing in Rails 3
Rails 3 ha una nuova interfaccia di routing. In questo episodio mostriamo come tradurre la vecchia interfaccia nella nuova e facciamo vedere alcune delle nuove funzionalità.
202 Query Active-Record in Rails 3
Rails 3 introduce una nuova interfaccia per le query per rendere più performanti i recuperi con Active Record. Guardate come funziona e quali sono i cambiamenti negli scope dei nomi.
201 Bundler
Bundler è il sistema di gestione delle dipendenze fra gem di Rails 3.0. In questo episodio impariamo come installare i gem e come bloccarli.
200 Rails 3 beta e RVM
niziare a lavorare con la prima beta di Rails 3.0 e installare Ruby 1.9.1 usando il Ruby Version Manager, RVM. Anche una sfida nel ritorno all'Open Source.
199 Dispositivi mobili
In questo episodio cambieremo l’aspetto ed il comportamento della applicazione Rails sui dispositivi mobili e useremo jQTouch per creare una interfaccia dall’aspetto nativo.
198 Modifica Individuale di record Multipli
Utilizzare delle checkbox per la modifica di più record in un form in cui ogni record ha i suoi campi form individuali.
197 Nested Model Form Parte 2
Aggiungere e rimuovere i campi di modelli nidificati dinamicamente con JavaScript utilizzando Prototype o jQuery.
196 Nested Model Form Parte 1
Il metodo "accepts_nested_attributes_for", introdotto a partire dalla versione 2.3 di Rails, facilita la gestione di più modelli con un singolo form. Scoprite come usarla in questo episodio.
195 Migliori applicazioni web del 2009
In questo episodio vi mostriamo alcune fra le migliori applicazioni web del 2009 per sviluppatori Ruby.
194 MongoDB e MongoMapper
MongoDB è un motore di database basato su documenti. In questo episodio impariamo a usarlo nelle applicazioni Rails con Mongomapper.
193 Modelli non persistenti
Se volete creare un modello privo di tabella associata sul database, tutto ciò di cui avrete bisogno sarà di definire una coppia di metodi nel modello.
192 Autorizzazione con CanCan
CanCan è un semplice plugin per l'autorizzazione che offre molta flessibilità. Scopriamo come usarlo in questo episodio.
191 Mechanize
Mechanize estende Nokogiri, permettendovi di interagire con altri siti web, riempiendo form e cliccando su collegamenti.
190 Screen Scraping con Nokogiri
Usare Nokogiri e SelectorGadget insieme rende semplice lo screen-scraping.
189 Associazioni embedded
In questo episodio vi mostriamo come incapsulare una associazione uno-a-molti o molti-a-molti in un singolo campo intero.
181 Include vs Joins
Le due opzioni del metodo find include e joins possono confondere siccome sono simili. Scopriamo quando sia opportuno usare l'uno piuttosto che l'altro in questo episodio.
180 Trovare i CSS inutilizzati
Man mano che i siti web cambiano, i fogli di stile possono cominciare a riempirsi di selettori inutilizzati. Il gem Deadweight aiuta a capire quali possano essere rimossi.
169 Caching dinamico delle pagine
Usare una combinazione di page caching e JavaScript per creare una pagina cacheata veloce che possa ugualmente essere aggiornata dinamicamente.
138 I18n
L'internazionalizzazione è stata una delle più significative aggiunte introdotte da Rails 2.2. Vi mostreremo in questo episodio come cominciare ad usarla.
136 jQuery
In questo episodio ricreeremo un meccanismo di submit per le form in AJAX come già fatto nell'episodio 43, ma questa volta usando jQuery al posto di Prototype e RJS.
134 Paperclip
Paperclip semplifica l'aggiunta di allegati al modello. Scopriamo come in questo episodio.
44 Debug di RJS
RJS e AJAX possono essere ostici da debuggare, specialmente quando il browser non mostra alcun messaggio di errore. Scopriamo come seguire le richieste AJAX in questo episodio.
43 AJAX con RJS
Impariamo come usare RJS per generare del JavaScript in grado di aggiornare più elementi in una pagina.
33 Fare un plugin
Le duplicazioni possono spesso essere rimosse dal vostro codice Ruby creando metodi dinamicamente. In questo episodio creeremo un plugin proprio per fare ciò.
32 Ore nei campi di testo
Aggiornamento di campi di orario mediante una serie di tendine non è il modo pi%ugrave; elegante per inserire informazioni cronologiche. Scopriamo come permettere all’utente di inserire direttamente in un campo di testo date e orari.
31 Formattare le date
Usiamo il metodo Ruby strftimeper formattare le date e sfruttiamo l’hash Rails DATE_FORMATS per salvare formati di date personalizzati.
30 Titolo di pagina carino
E’ facile dare ad ogni pagina della vostra applicazione Rails un proprio titolo. Qui vi mostreremo un modo semplice per farlo.
29 group_by Month
Il metodo group_by può essere usato per raggruppare liste di elementi da mostrare nelle vostre applicazioni Rails.
28 In Groups Of
Il metodo in_groups_of rende facile mostrare una collezione di elementi in diverse colonne, con un piccolo trucco.
27 Cross-site Scripting
Il cross-site scripting è un'argomento sulla sicurezza piuttosto comune. Capiamo perchè è importante fare escape di qualsiasi input dell’utente che viene mostrato in un browser.
26 Gli hacker amano gli assegnamenti massivi
Se usate l’assegnamento massivo state dando il controllo completo dei vostri modelli agli utenti. Impariamo come proteggere i dati in questo episodio.
25 SQL injection
Gli attacchi per SQL injection sono uno dei modi più comuni per attaccare u'applicazione web. Impariamo come evitare di esserne vittime.
24 Lo stack trace
Lo stack trace è un utile aiuto quando di fa debugging. Impariamo ad usarlo in questo episodio.
23 Colonna cache di conteggio
Aumentare le prestazioni facendo cache della cardinalità dei record associati al corrente mediante relazione has_many in una colonna cache di conteggio.
22 Caricamento dati preventivo (eager loading)
Aumentare le prestazioni dell'applicazione riducendo il numero di query al database. Il caricamento preventivo lo fa in modo semplice.
21 Autenticazione super semplice
L'autenticazione è il passo finale di configurazione del nostro sito. Ci sono molti modi per farla, ma in questo episodio seguiremo l'approccio più semplice.
20 Limitare gli accessi
Impariamo come limitare gli accessi al sito e inibire l'accesso a funzioni amministrative per l'utenza pubblica.
19 Gestire la parte amministrativa della applicazione
Prima di tre parti sul come creare un sistema amministrativo per il vostro sito che non richieda la costruzione di un intero insieme separato di pagine.
18 Ciclare sui messaggi flash
Visualizzare messaggi flash può essere doloroso. Questo episodio mostra un metodo facile e furbo per mostrare tutti i messaggi flash.
17 Checkox HABTM
Creare una lista di checkbox per gestire semplicemente le relazioni HABTM.
16 Attributi virtuali
Mantenete le form flessibili aggiungendo attributi virtuali al vostro modello. Questa potente tecnica permette di creare campi di form che possono non essere direttamente associati a campi sul database.
15 Giocare con le condizioni della find
Si possono passare oggetti oltre che stringhe ai vincoli della find, ma occorre stare attenti per garantire la corretta generazione dell'SQL.
14 Eseguire calcoli sui modelli
ActiveRecord fornisce metodi di classe per eseguire funzioni di aggregazione SQL. Vediamo come in questo episodio.
13 I pericoli dei modelli in sessione
Bisogna stare attenti quando si salva un modello in sessione poiché può diventare differente dallo stesso sul database.
12 Refactoring del nome utente Parte 3
Nella parte conclusiva degli episodi sul testing e sul refactoring faremo del refactoring sul codice di test.
11 Refactoring del nome utente Parte 2
Avendo spostato codice dalla vista al modello nella prima parte, lo rivedremo e scriveremo alcuni test per assicurarci che funziona ancora tutto come ci aspettiamo.
10 Refactoring del nome utente Parte 1
Questo episodio mostra come spostare il codice dalla vista al modello per ridurre le duplicazioni e ripulire la vista.
Filtrare i log sensibili
Per default, Rails salva dati sensibili nei propri log. Scopri come filtrare ciò.
Layout e content_for
content_for permette di cambiare i template sulla base dei singoli template.
Tutto sui layout
Tutto ciò che avreste sempre voluto sapere sui template.
L'uso della Symbol to_proc per sostituire i blocchi
Il meccanismo della Symbol#to_proc di Rails permette di fare dei semplici blocchi in modo rapido e pulito.
Usare la with_scope
Imparare come usare la with_scope - un metodo molto potente che permetterà ai vostri metodi di recupero di accettare qualunque tipo di vincolo aggiuntivo.
Spostare le find ricorrenti nel modello
Ripulire i controller e rimuovere le duplicazioni spostando una find nel modello. Utilizzo di una associazione per chiamare metodi find personalizzati.
Find mediante associazioni
Usare l'associazione has_many in una find per evitare la necessità di passare foreign key.
Metodo find dinamico
Accorciare le find semplici e aumentare la leggibilità del codice usando i metodi dinamici find_by e find_all_by.
Fare cache con variabili di istanza
Salvare il risultato di un comando costoso in una variabile locale per incrementare le performance.