Forum: Italian Ruby user group Shallow - Routing

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
598fadf49a8e63645edfb36cba7dc1c9?d=identicon&s=25 Luigi Maresca (luigi-s-w-net)
on 2009-04-02 09:26
Qualcuno mi sa indicare qualche sito su cui studiare un pò questa
funzione di costruzione dinamica dell'url?

  map.resources :nations, *:shallow => true* do |nation|
    nation.resources :genres do |genre|
      article.resources :authors
    end
  end

Grazie mille

Luigi
0df4a6c75caf1bd9b01d2dcbfb085ee4?d=identicon&s=25 Sandro Paganotti (Guest)
on 2009-04-02 09:56
(Received via mailing list)
Bhe... se ti riferisci esplicitamente alla funzione shallow l'unica
risorsa
che ho
trovato sul termine è la documentazione delle api di rails :)
(tieni conto però che secondo me è gia abbastanza esauriente quella nel
senso che
a parte trimmare le url non fà molto di
più)
yezz
0c79c9f33bb2aebfc175a7596f6ca099?d=identicon&s=25 Tucano (Guest)
on 2009-04-02 10:35
(Received via mailing list)
Qui trovi un railcast su nested resources in rails 2.x

http://railscasts.com/episodes/139-nested-resources


Parla anche delle shallow routes

ciao

Il giorno 02/apr/09, alle ore 09:26, Luigi Maresca ha scritto:
598fadf49a8e63645edfb36cba7dc1c9?d=identicon&s=25 Luigi Maresca (luigi-s-w-net)
on 2009-04-02 14:38
Salve ragazzi e intanto grazie per le risposte.
La mia soluzione non è o meglio non deve essere necessariamente lo
shallow ma me l'hanno consigliato e dato che non lo riesco ad utilizzare
avrei avuto bisogno di qualche indicazione.

Il mio problema è il seguente:

nel file routes.rb ho la seguente route:

map.selection
'libri/nazionalita/:nation/genere/:category/autore/:author/elenco.html',
:controller=>'book', :action=>'selection'

in tal modo possono essere generati degli url del tipo:

http://127.0.0.1:3000/libri/nazionalita/tutte/gene...

http://127.0.0.1:3000/libri/nazionalita/tutte/gene...

http://127.0.0.1:3000/libri/nazionalita/inglese/ge...

etc..

Sarebbe bello, però, nel caso in cui venga selezionata solo la categoria
o solo l'autore o solo la nazionalità o solo due di queste generare URL
del tipo:

http://127.0.0.1:3000/libri/genere/commedia.html

http://127.0.0.1:3000/libri/nazionalita/inglese/ge...

anche se forse sarebbe più facile(non saprei) uno del tipo:

http://127.0.0.1:3000/libri/nazionalita/inglese/ge...

etc..

Se riuscite ad aiutarmi ve ne sarei grato!

Grazie

Luigi
0c79c9f33bb2aebfc175a7596f6ca099?d=identicon&s=25 Tucano (Guest)
on 2009-04-07 09:36
(Received via mailing list)
IO non replicherei una struttura a chiavi e valori

Es: nazionalita'/inglese

con gli URL. (o ti ritrovi con url chilometrici)


Per le categorie (relazione has_and_belong_to_many)

http://api.rubyonrails.org/classes/ActiveRecord/As...

cioa


Il giorno 02/apr/09, alle ore 14:38, Luigi Maresca ha scritto:
598fadf49a8e63645edfb36cba7dc1c9?d=identicon&s=25 Luigi Maresca (luigi-s-w-net)
on 2009-04-07 09:57
Grazie lo stesso per tutti i consigli ma alla fine ci ho rinunciato,
soprattutto per mancanza di tempo, e ho scelto la soluzione non troppo
elegante del tipo:

http://.../libri/nazionalita/tutte/genere/romanzo/...

http://.../libri/nazionalita/tutte/genere/romanzo/...


Gli url così non mi sembrano eccessivamente lunghi ma sono
spider-friendly perché esplicativi, nooo?

Cmq il sito oramai è on-line quindi non posso più modificare gli url.

Recensioni-Libri.Net
598fadf49a8e63645edfb36cba7dc1c9?d=identicon&s=25 Luigi Maresca (luigi-s-w-net)
on 2009-04-24 12:22
Forse una mezza soluzione l'ho trovata, spero possa eservi utile.

Riporto l'esempio per un caso un pò più semplice e cioè con meno scelte,
ma penso si possa tranquillamente applicare al caso più complesso.

routes.rb:

map.category 'elenco/software/:category.html',
          :controller=>'view',
          :action=>'index'

map.license 'elenco/software/licenza/:license.html',
          :controller=>'view',
          :action=>'index'

map.catlic 'software/:category/:license/elenco.html',
          :controller=>'view',
          :action=>'index'

nella vista piuttosto che utilizzare il routing specifico si può
utilizzare quello generico:

url_for(:category=>@book.cat.name)

in questo modo verrà automaticamente agganciato il map.category che
genererà l'url:

...elenco\software\antivirus.html

se invece si utilizza:

url_for(:category=>@book.cat.name,:license=>lic.name)

verrà agganciato automaticamente map.catlic

e inoltre se dovesse capitare che :category è nil oppure :license è nil
automaticamente vengono aggangiati map.category map.license oppure
map.catlic.

che ne dite???

Luigi
Eff93e9bbe063b7136c9b6f218071a09?d=identicon&s=25 Marco Mastrodonato (marcomd)
on 2009-04-27 09:33
Luigi Maresca wrote:
>
> che ne dite???
>
> Luigi

Ciao Luigi, hai trovato un sistema per ottenere il tuo scopo e questo è
positivo ma il mio parere è essenzialmente allineato col consiglio di
Tucano, dovresti utilizzare le "risorse" e limitarti ad annidare queste,
potrebbe aiutarti approfondire il concetto dell'architettura REST con
cui rails ci va a nozze
598fadf49a8e63645edfb36cba7dc1c9?d=identicon&s=25 Luigi Maresca (luigi-s-w-net)
on 2009-04-27 12:20
Ti riferisci al consiglio di non generare url kmtrici?
Se si,
non sono molto d'accordo, se mi consentite, perché un url esplicativo
della pagina che si desidera mostrare è molto importante dal punto di
vista dello spider.

Vorrei portarvi subito un esempio.

Il sito è online da circa 2 settimane, se provate a cercare con google
"libri di romanzi storici" esce in 14 posizione e il testo evidenziato
dal motore di ricerca sta anche nell'url.


Grazie

Luigi
Eff93e9bbe063b7136c9b6f218071a09?d=identicon&s=25 Marco Mastrodonato (marcomd)
on 2009-04-27 15:16
Luigi Maresca wrote:
>
> Vorrei portarvi subito un esempio.
>

Più che per evitare gli url kilometrici era per non impazzire nel
crearli, anche se ho visto che url_for fa molto del lavoro sporco.
Comunque ho visto il sito, niente male!
598fadf49a8e63645edfb36cba7dc1c9?d=identicon&s=25 Luigi Maresca (luigi-s-w-net)
on 2009-04-27 19:21
...grazie mille!!!
This topic is locked and can not be replied to.