Personalizzare gli URL - Customize URL

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

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

Saluti

Luigi

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?

On 11/22/07, Luigi Ma [email protected] 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, sempre che ti vada.

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

On 11/22/07, Luigi Ma [email protected] 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

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

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

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

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
speaker at:
Rome JavaDay 2007
javaday.it - This website is for sale! - javaday Resources and Information.

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

Altri esempi li trovate sul sito Software-Windows.net