# Personalizzare gli URL - Customize URL

**URL:** <https://www.ruby-forum.com/t/personalizzare-gli-url-customize-url/120911>\
**Category:** IT\
**Created:** [November 21, 2007, 6:36pm UTC](https://www.ruby-forum.com/t/personalizzare-gli-url-customize-url/120911 "2007-11-21T18:36:08Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![softwarewin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@softwarewin](https://www.ruby-forum.com/u/softwarewin)\
**Post date:** [November 21, 2007, 6:36pm UTC](https://www.ruby-forum.com/t/personalizzare-gli-url-customize-url/120911/1 "2007-11-21T18:36:08Z")

</div>

Salve a tutti,  
vorrei rendervi partecipi delle scoperte che ho fatto relative alle  
potenzialitÃ del ruby. Forse le sapete tutti e io ho fatto la scoperta  
dell’america, perÃ² non si sa mai.

Nel routes.rb Ã¨ possibile inserire nel ciclo do |map| la stringa:

#Url per software.rhtml  
map.software ‘view/:id/software/:keyword/:title.html’,  
:controller=\>‘view’,  
:action=\>‘software’

DopodichÃ© in una qualsiasi vista per la generazione dell’url invece di  
usare url\_for si deve usare:

software\_url(:id=\>guide,:keyword=\>guide.keyword\_url,:title=\>guide.title.split.join(“-”).downcase)

Il risultato sarÃ ad esempio:

[http://www.software-windows.net/84/software/internet-browser/firefox-mozilla.html](http://www.software-windows.net/84/software/internet-browser/firefox-mozilla.html)

Se non vi sto raccontando nulla di nuovo fatemelo sapere che aggiungo il  
resto.

Saluti

Luigi

---

<div class="post-metadata">

**Author:** ![softwarewin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@softwarewin](https://www.ruby-forum.com/u/softwarewin)\
**Post date:** [November 22, 2007, 2:42pm UTC](https://www.ruby-forum.com/t/personalizzare-gli-url-customize-url/120911/2 "2007-11-22T14:42:13Z")

</div>

Luigi Ma wrote:

> Nel routes.rb Ã¨ possibile inserire nel ciclo do |map| la stringa:
> 
> #Url per software.rhtml  
> map.software ‘view/:id/software/:keyword/:title.html’,  
> :controller=\>‘view’,  
> :action=\>‘software’
> 
> DopodichÃ© in una qualsiasi vista per la generazione dell’url invece di  
> usare url\_for si deve usare:
> 
> software\_url(:id=\>guide,:keyword=\>guide.keyword\_url,:title=\>guide.title.split.join("-").downcase)
> 
> Se non vi sto raccontando nulla di nuovo fatemelo sapere che aggiungo il  
> resto.
> 
> Saluti
> 
> Luigi

…perchÃ© nessuno mi dice nulla?

---

<div class="post-metadata">

**Author:** ![softwarewin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@softwarewin](https://www.ruby-forum.com/u/softwarewin)\
**Post date:** [November 22, 2007, 3:43pm UTC](https://www.ruby-forum.com/t/personalizzare-gli-url-customize-url/120911/3 "2007-11-22T15:43:28Z")

</div>

On 11/22/07, Luigi Ma [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > Dopodiché in una qualsiasi vista per la generazione dell’url invece di  
> > usare url\_for si deve usare:
> > 
> > software\_url(:id=\>guide,:keyword=\>guide.keyword\_url,:title=\>  
> > guide.title.split.join(“-”).downcase)
> > 
> > Se non vi sto raccontando nulla di nuovo fatemelo sapere che aggiungo il  
> > resto.

Ciao Luigi, sembra che in ML siano tutti un pò impegnati in questo periodo.  
oh, non starete mica lavorando!

Il routing è una di quelle cose che interessa - e sconcerta - sempre un pò  
chi si approccia a rails. Se ti va di estendere le tue considerazioni e  
scrivere due righe in più possiamo tirarne fuori un articoletto per  
[therubymine.com](http://therubymine.com), sempre che ti vada.

Mi ricordo anche una bella presentazione di luca mearelli sul routing da  
qualche parte…

---

<div class="post-metadata">

**Author:** ![softwarewin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@softwarewin](https://www.ruby-forum.com/u/softwarewin)\
**Post date:** [November 23, 2007, 12:39am UTC](https://www.ruby-forum.com/t/personalizzare-gli-url-customize-url/120911/4 "2007-11-23T00:39:49Z")

</div>

On 11/22/07, Luigi Ma [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Ne sarei onorato e soprattutto penso che possa essere utilissimo a  
> tutti.

alla grande. ti giro anche il link del lavoro di luca:  
[http://www.spazidigitali.com/wp-content/uploads/2006/09/All%20You%20Ever%20Wanted%20To%20Know%20About%20Routing.pdf](http://www.spazidigitali.com/wp-content/uploads/2006/09/All%20You%20Ever%20Wanted%20To%20Know%20About%20Routing.pdf)

io mi terrei più introduttivo rispetto alle slide di luca, cercando di fare  
una soft intro per i newbie.

---

<div class="post-metadata">

**Author:** ![softwarewin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@softwarewin](https://www.ruby-forum.com/u/softwarewin)\
**Post date:** [November 22, 2007, 5:45pm UTC](https://www.ruby-forum.com/t/personalizzare-gli-url-customize-url/120911/5 "2007-11-22T17:45:56Z")

</div>

Ne sarei onorato e soprattutto penso che possa essere utilissimo a  
tutti.  
Io ho cercato molto in internet quello che mi serviva e l’ho trovato con  
grande difficoltÃ .  
Al momento penso di essere giunto a un livello, sicuramente sto  
sfruttando l’1% delle sue potenzialitÃ , di sfruttamento delle  
potenzialitÃ del routes.rb veramente utile ed interessante.

Fammi sapere.

Luigi

---

<div class="post-metadata">

**Author:** ![softwarewin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@softwarewin](https://www.ruby-forum.com/u/softwarewin)\
**Post date:** [November 29, 2007, 10:26am UTC](https://www.ruby-forum.com/t/personalizzare-gli-url-customize-url/120911/6 "2007-11-29T10:26:30Z")

</div>

Ho letto l’articolo, perÃ² le informazioni riportate si riescono a  
trovare facilmente in internet e non spiegano come sfruttare meglio il  
routing per aggiungere estensioni tipo html - jpg oppure css negli URL.

Per fare un esempio, la possibilitÃ di aggiungere un estensione ad un  
numero del db che contiene un BLOB, dati immagine, Ã¨ fondamentale per  
l’indicizzazione da parte dei motori di ricerca.

Luigi

---

<div class="post-metadata">

**Author:** ![softwarewin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@softwarewin](https://www.ruby-forum.com/u/softwarewin)\
**Post date:** [November 29, 2007, 11:08am UTC](https://www.ruby-forum.com/t/personalizzare-gli-url-customize-url/120911/7 "2007-11-29T11:08:16Z")

</div>

Luigi Ma ha scritto:

> Ho letto l’articolo, però le informazioni riportate si riescono a  
> trovare facilmente in internet e non spiegano come sfruttare meglio il  
> routing per aggiungere estensioni tipo html - jpg oppure css negli URL.
> 
> Per fare un esempio, la possibilità di aggiungere un estensione ad un  
> numero del db che contiene un BLOB, dati immagine, è fondamentale per  
> l’indicizzazione da parte dei motori di ricerca.
> 
> Luigi

Per registrare un mime type, occorre aggiungere la seguente riga a  
config/environment.rb

Mime::Type.register ‘image/jpeg’, :jpg

Nel tuo controller:

def show  
@image = Image.find(params[:id])

respond\_to do |format|  
format.html  
format.jpg { … }  
end  
end

Nel block devi gestire il rendering della jpg.  
Ora la tua applicazione dovrebbe rispondere alle routes che terminano  
con .jpg

Luca.

–  
blog: [www.lucaguidi.com](http://www.lucaguidi.com)  
speaker at:  
Rome JavaDay 2007  
[javaday.it&nbsp;-&nbsp;This website is for sale!&nbsp;-&nbsp;javaday Resources and Information.](http://roma.javaday.it/roma/)

---

<div class="post-metadata">

**Author:** ![softwarewin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/5f9b8f/32.png) [@softwarewin](https://www.ruby-forum.com/u/softwarewin)\
**Post date:** [November 29, 2007, 1:51pm UTC](https://www.ruby-forum.com/t/personalizzare-gli-url-customize-url/120911/8 "2007-11-29T13:51:26Z")

</div>

Con Ruby 1.8.6 e Rails 1.2.3 non Ã¨ necessario aggiungere nulla  
nell’environment.  
Supponendo di avere nel db Mysql un campo BLOB per inviare l’immagine al  
browser Ã¨ necessario utilizzare, nel controller, il send\_data e poi  
richiamarlo dalla vista.  
Mi spiego meglio nel Controller Ã¨ necessario definire:

def picture  
@pictures=Picture.find(params[:id])  
send\_data(@pictures.data,:filename=\>“#{@pictures.anchor.gsub(/l’/,”  
“).split.join(”-“).downcase}” ,:type=\>“image”, :disposition=\>‘inline’)  
end

dove il campo “data” del DB Ã¨ di tipo BLOB;  
il campo “anchor” Ã¨ di tipo VARCHAR.

Poi nella vista per richiamare e visualizzare l’immagine Ã¨ necessario  
qualcosa del tipo:

\<img  
src=“\<%=picture\_url(:id=\>@picture,:keyword=\>@picture.guide.subcategory.name,:title=\>@picture.guide.title.split.join(”-“).downcase,:picture\_name=\>image\_file\_name)-%\>”  
/\>

dove picture\_url Ã¨ definito nel routes.rb nel seguente modo:

map.picture  
‘:id/software/:keyword/:title/screen-capture/:picture\_name.jpg’,  
:controller=\>‘view’,  
:action=\>‘picture’

CosÃ¬ facendo l’indirizzo generato risulta estremamente pulito e  
significativo come ad esempio:

[http://www.software-windows.net/493/software/file-search/google-desktop/screen-capture/ricerca-file.jpg](http://www.software-windows.net/493/software/file-search/google-desktop/screen-capture/ricerca-file.jpg)

Altri esempi li trovate sul sito [Software-Windows.net](http://Software-Windows.net)
