Filtrare rotte in base all'environment

Ciao a tutti,

vorrei sapere se esiste un metodo per abilitare una rotta solo in un
determinato environment.

Qualcosa di simile a questo (gemfile)

group :test, :development do
gem ‘webrat’
end

ma per routes.rb

Grazie per l’aiuto

Saluti

Guido

P.S. La versione di rails è la 3

potresti usare un piccolo workaround, non so se esistono strade migliori
(molto
probabilmente ce ne sono altre):

crei una classe dentro config/routes.rb

class EnvTest # nome di fantasia…
def self.matches?(request)
Rails.env == ‘test’ # controllo se l’env sia test
end
end

constraints(EnvTest) do
# metti le rotte che vuoi avere solo con test environment
end

un’idea folle che nemmeno ho provato :stuck_out_tongue: a occhio dovrebbe andare, perch
in
pratica metti un constraint che funziona solo quando usi il test
environment
(qualcosa di molto vicino alla logica dei subdomains) :wink:

ciao,
A.

Il 24/02/2011 16:11, Guido S. ha scritto:

ma per routes.rb

Grazie per l’aiuto

Saluti

Guido

P.S. La versione di rails la 3


http://twitter.com/apeacox

Ciao,
non so se le “rotte” siano attivate in determinati environments perche
fanno parte di features in fase di testing. Se cosi’ fosse hai pensato
ad un approccio tipo feature flag? Flickr dev blog ha un breve
articolo a riguardo:
http://code.flickr.com/blog/2009/12/02/flipping-out/
e c’e’ un plugin che potrebbe fare al caso tuo:

per dire potresti avere la feature veggie_challenge (e le sue “rotte”)
disattiva in production ma attiva in staging per esempio.

HTH,
Enrico

2011/2/25 Andrea P. [email protected]:

gem ‘webrat’
P.S. La versione di rails la 3


Enrico T.
IT consultant, accessible web sites and web applications
currently working @ http://www.redant.com.au
Sydney, NSW, Australia
[email protected]
mobile (AU) +00610416748450

Grazie a tutti per le risposte.

in particolare la soluzione qui sotto era perfetta per quel che dovevo
fare.

Guido

Maurizio De magnis wrote in post #983807:

Mmh, forse ti basta usare un semplice:

if Rails.env == “production”

mie_regole_di_routing

end

Mmh, forse ti basta usare un semplice:

if Rails.env == “production”

mie_regole_di_routing

end

all’interno di config/routes.rb

Non so se pero’ ci siano inconvenienti legati a questa soluzione (non
penso).

Maurizio

Il 24 febbraio 2011 16:11, Guido S. [email protected] ha
scritto: