# \[Newbie\] Consigli per layout treeview

**URL:** <https://www.ruby-forum.com/t/newbie-consigli-per-layout-treeview/222435>\
**Category:** IT\
**Created:** [August 28, 2012, 4:22pm UTC](https://www.ruby-forum.com/t/newbie-consigli-per-layout-treeview/222435 "2012-08-28T16:22:31Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![aris](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@aris](https://www.ruby-forum.com/u/aris)\
**Post date:** [August 28, 2012, 4:22pm UTC](https://www.ruby-forum.com/t/newbie-consigli-per-layout-treeview/222435/1 "2012-08-28T16:22:31Z")

</div>

Buongiorno a tutti,  
scrivo perché avrei bisogno dei vostri consigli ed esperienze.  
Perdonate eventuali inesattezze o ingenuità ma sono da poco su RoR per  
cui chiedo venia 🙂

Arrivo al dunque: vorrei realizzare un’app per approfondire i miei studi  
e “sporcarmi un pò le mani” anche per quanto riguarda il layout, il mio  
obiettivo è quello di arrivare ad un’app per la gestione di commesse di  
lavoro in cui sulla sinistra della schermata ho una sidebar di  
navigazione treeview con elementi padre-figlio (drag&drop per  
modificarne l’ordinamento) e, cliccando sulle singole voci, nel riquadro  
di destra avere il dettaglio del record.

In buona sostanza vorrei ottenere un risultato simile a quello proposto  
in questa demo: [demo.netzke.org](http://demo.netzke.org)

Per quanto riguarda il core RoR non penso avrò problemi, l’integrazione  
con javascript/jquery invece mi è più criptica

Avete già realizzato soluzioni simili? Con che tools?  
Consigli per implementazione della parte js?

Ringrazio tutti in anticipo

Jonathan

---

<div class="post-metadata">

**Author:** ![johanatan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/8491ac/32.png) [@johanatan](https://www.ruby-forum.com/u/johanatan)\
**Post date:** [August 28, 2012, 4:45pm UTC](https://www.ruby-forum.com/t/newbie-consigli-per-layout-treeview/222435/2 "2012-08-28T16:45:59Z")

</div>

Ciao,  
in realt credo dipenda molto dal livello di complessit che vuoi  
raggiungere.

Sicuramente se vuoi costruire un’app identica alla demo che hai linkato,  
la cosa migliore al momento usare un framework js tipo:

[http://backbonejs.org](http://backbonejs.org)  
[http://spinejs.com](http://spinejs.com)

> **[Ember.js - A framework for ambitious web developers](https://emberjs.com/)**
>
> Ember.js helps developers be more productive out of the box. Designed with developer ergonomics in mind, its friendly APIs help you get your job done—fast.

> **[SproutCore](https://sproutcore.com/)**
>
> A framework for building fast, desktop caliber web applications.

[http://cappuccino.org](http://cappuccino.org)

I primi tre tendono ad essere leggeri, gli ultimi sono pesanti ma  
dovresti avere a disposizione tutti i widget necessari a realizzare  
un’app  
come quella che hai linkato.

Per quanto riguarda l’integrazione, se scegli la via del framework  
client side, avviene al 100% via API (che dovrai implementare lato Rails  
con  
librerie tipo [GitHub - nesquena/rabl: General ruby templating with json, bson, xml, plist and msgpack support](https://github.com/nesquena/rabl)). La tendenza quella di  
usare json.

Per il resto il codice lo puoi tenere sia completamente separato  
(consigliato in caso l’app javascript diventi molto grossa) sia  
conservarlo dentro  
una delle directory assets di rails.  
Generalmente se usi backbone o spine il secondo tipo di integrazione la  
puoi fare facilmente tramite diverse gem (tipo  
[GitHub - meleyal/backbone-on-rails: A simple gem for using Backbone.js with Rails.](https://github.com/meleyal/backbone-on-rails))  
altrimenti se usi sproutcore o cappuccino, dato che sono pi complessi e  
strutturati, ti consiglio da subito il primo approccio.

Per precisare, cappuccino non esattamente un framework js ma  
sicuramente ti pu aiutare a costruire un’interfaccia simile a quella che  
vuoi realizzare.

–  
Matteo L.

> **[The eCommerce consultancy for category disruptors | Nebulab](https://nebulab.com/)**
>
> We are the full-service eCommerce agency behind some of the world’s most innovative digital brands. Let's talk about your project.

Il giorno 28/ago/2012, alle ore 16:22, Jonathan L.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

---

<div class="post-metadata">

**Author:** ![johanatan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/8491ac/32.png) [@johanatan](https://www.ruby-forum.com/u/johanatan)\
**Post date:** [August 30, 2012, 11:10am UTC](https://www.ruby-forum.com/t/newbie-consigli-per-layout-treeview/222435/3 "2012-08-30T11:10:36Z")

</div>

Ciao Matteo,  
grazie per la tua dettagliata risposta!  
Ho iniziato a dare un’occhiata alle soluzioni da te proposte  
e credo che mi orienterò verso sproutcore o emberjs,  
ma la scelta merita un approfondimento da parte mia.

Perdona la domanda ma quando scrivi “Per il resto il codice lo puoi  
tenere sia completamente separato (consigliato in caso l’app javascript  
diventi molto grossa) sia conservarlo dentro una delle directory assets  
di rails”  
ho capito la gestione nelle assets ma non l’integrazione in una dir  
separata. Puoi farmi gentilmente un esempio?

Ti ringrazio in anticipo

Jonathan

---

<div class="post-metadata">

**Author:** ![johanatan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/8491ac/32.png) [@johanatan](https://www.ruby-forum.com/u/johanatan)\
**Post date:** [August 30, 2012, 12:19pm UTC](https://www.ruby-forum.com/t/newbie-consigli-per-layout-treeview/222435/4 "2012-08-30T12:19:14Z")

</div>

Ciao Matteo,  
grazie per la risposta e per i tuoi consigli,  
anche per quanto riguarda la scelta del framework.

La spiegazione che mi hai dato circa la gestione delle app js  
che dialogano in RESTful con l’app server-side, a livello  
teorico la conoscevo già, ma praticamente non ho mai sviluppato  
soluzioni simili, per cui hai dedotto bene e da qui le mie lacune…  
anche elementari!

In ogni caso sono aperto a consigli e critiche,  
nonchè grato di ricevere suggerimenti per approfondire le mie  
conoscenze,  
come il libro che mi hai segnalato su Amazon 🙂

Sei hai altre indicazioni da darmi, consigli su manualistica o risorse  
online, anche per quanto riguarda RoR, sono “tutto orecchi”!

Grazie ancora per la tua disponibilità

Jonathan

---

<div class="post-metadata">

**Author:** ![johanatan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/8491ac/32.png) [@johanatan](https://www.ruby-forum.com/u/johanatan)\
**Post date:** [August 30, 2012, 11:42am UTC](https://www.ruby-forum.com/t/newbie-consigli-per-layout-treeview/222435/5 "2012-08-30T11:42:23Z")

</div>

Intanto ci tengo a precisare, visto che ti sei orientato verso  
sproutcore/emberjs che la struttura e la comunit di questi due  
framework (emberjs e’ derivato da sproutcore) da considerare  
sicuramente pi “acerba” rispetto a quella di backbone.

Ci non necessariamente un male (sproutcore il framework alla base di  
[icloud.com](http://icloud.com)), diciamo solo che troverai  
sicuramente maggiori intoppi nella documentazione.

Inoltre, una delle feature pi interessanti di sproutcore/ember anche il  
suo pi grande punto debole.  
Il model/view binding gestito dal framework stesso al contrario di  
backbone/spine dove devi fare tutto a manella.  
Puoi vederne una demo qui: [Backbone Events vs. Ember Bindings: A Benchmark - JSFiddle - Code Playground](http://jsfiddle.net/ntMdB/119/)  
A mio avviso il model/view binding di sproutcore indica anche, da parte  
degli sviluppatori, la volont di creare un  
framework pi simile a rails rispetto a backbone che ha optato per un  
approccio completamente nuovo.

Ogni cosa ha pro e contro, volevo solo avvertirti per scaricare la mia  
responsabilit 😃

Per quanto riguarda l’integrazione, non ho esempi particolari da farti.  
Probabilmente se non ti chiaro vuol dire  
che devi capire meglio come funzionano le applicazioni scritte  
completamente in js.  
Mentre in un app rails “classica” il lavoro sporco lo fa sempre il  
server e hai un certo numero di script js che ti aiutano a presentare  
i dati sul frontend, con un app js il lavoro sporco lo fa quasi  
esclusivamente il browser dell’utente tramite il framework  
che usi. L’unica cosa a cui il server prende parte e’ immagazzinare e  
rendere disponibili i dati. I dati vengono gestiti  
solitamente tramite un’interfaccia RESTful in formato xml o json.  
A questo punto da una parte avrai un server rails (o altro framework di  
sorta) che comunica con un’applicazione javascript  
tramite chiamate RESTful che ritornano json o xml (quindi senza diretta  
interazione con l’utente finale).  
Una volta che hai queste due componenti, non ha pi senso tenerle  
insieme. Potresti avere due repository distinti con un’app  
rails ed un app sproutcore e decidere tu come debbano interagire queste  
due entit.

A sto punto ti consiglio un bel libro:  
[http://www.amazon.it/dp/144930351X](http://www.amazon.it/dp/144930351X)  
E’ dell’autore di spine.js e spiega proprio tutti questi concetti. C’e’  
anche un capitolo sull’interazione con rails.

–  
Matteo L.

> **[The eCommerce consultancy for category disruptors | Nebulab](https://nebulab.com/)**
>
> We are the full-service eCommerce agency behind some of the world’s most innovative digital brands. Let's talk about your project.
