Forum: Italian Ruby user group routing-filter e rails

Posted by Lorenzo Sicilia (Guest)
on 2013-01-03 13:06
(Received via mailing list)
Ciao lista,

sto utilizzando all'interno di un progetto rails routing-filter
(https://github.com/svenfuchs/routing-filter)
Sito multi lingua che utilizza high_voltage.
Rail mi generava degli orribili "?locale=en"

Ho configurato le mie rotte secondo questo modello:

filter :locale, :exclude => /^\/admin/
scope "/(:locale)", :locale => /it|fr/   do

 resources :varie
 resources :eventuali

 match "#{HighVoltage::content_path}*id" => 'high_voltage/pages#show',
:as => :page
end

in questo modo ottengo rotte corrette ma quando la url viene generata
da qualcosa come resource_path sono dolori:
/it/miapagina (quando utilizzo HighVoltage)
/it/it/varie (quando utilizzo un path generato da una mia risorsa)

di fatto c' una sovrapposizione tra quello che fa routing-filter e
quello che rails fa di default quando vede che c' un locale e lo
inserisce nella url.
Con exclude posso evitare /admin e va bene ma per il restante delle
risorse diventa troppo noioso.

Ho trovato due strade e mi fanno schifo tutte e due:
- RoutingFilter.active = false spengo l'url rewrite in toto. Nelle
poche pagine HighVoltage faccio a mano
- dentro la gemma RoutingFilter ho inserito una cosa di questo tipo:

...
prepend_segment!(result, locale) if prepend_locale?(locale,url) &&
!excluded?(url) # <--- AGGIUNTO url come parametro passato a
prepend_locale?
...
def prepend_locale?(locale,url)
      locale && (self.class.include_default_locale? ||
!default_locale?(locale) ) && !url.include?(locale.to_s) # <---
AGGIUNTO l'ultimo include?
 end
...

Qualcuno ha suggerimenti in merito?
grazie Lorenzo
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.