2012-12-09 20 views
11

W pliku z haml chciałbym ustalić, czy jesteśmy w naszych środowiskach programistycznych i programistycznych. Używamy Middleman.Jak sprawdzić, w jakim środowisku działa kod?

chciałbym zrobić coś takiego:

- if environment == 'development' 
    /Development Code 
    = javascript_include_tag "Dev.js" 

Próbowałem dostęp zmiennej środowiskowej Ruby, a także zdefiniować zmienną niestandardową w pliku config.rb bez powodzenia.

Odpowiedz

28

pan prawie miał rację - trzeba sprawdzić przed symbolem zamiast napisu:

- if environment == :development 
    /Development Code 
    = javascript_include_tag "Dev.js" 

Middleman dodaje również development? and build? methods który może być łatwiejsze w użyciu:

- if development? 
    /Development Code 
    = javascript_include_tag "Dev.js" 

Działa to również z ERB:

<% if development? %> 
<!-- Development Code --> 
<%= javascript_include_tag "Dev.js" %> 
<% end %> 
0

Najpierw, jeśli to możliwe, należy oddzielić logikę od danych. Określ swoje środowisko w kontrolerze i przełącz dane przesyłane do widoku (plik układu HAML).

Zazwyczaj należy ustawić flagę w zmiennych środowiskowych i uzyskać do niej dostęp w kodzie z poziomu ENV. Na przykład, sprawia, że ​​Sinatra/test ustawienie rozwój/produkcja dostępne wewnątrz kodu przy użyciu ich RACK_ENV symbol:

 
:environment - configuration/deployment environment A symbol 
specifying the deployment environment; typically set to one of 
:development, :test, or :production. The :environment defaults to the 
value of the RACK_ENV environment variable (ENV['RACK_ENV']), or 
:development when no RACK_ENV environment variable is set. 

The environment can be set explicitly: 

set :environment, :production

Jeśli masz toczyć własną rękę, że to dobry sposób, aby przejść o nim.

-1

Użyj: symbolu środowiska, który pośrednik utworzy s domyślnie: http://rubydoc.info/github/middleman/middleman/Middleman/Application#environment-instance_method

połączeniu z haml - można zrobić coś takiego:

= javascript_include_tag "Dev.js" unless :environment == "developement" 

zauważyć, że middlemans budować proces zmienia: wartość środowiskową „budować”

można również użyć developerski ? aby sprawdzić, czy jesteś na dev czy nie: http://rubydoc.info/github/middleman/middleman/Middleman/Application#development%3F-instance_method

Wszystkie powyższe stosuje się do pośredników 3.0.6 i może nie działać na mniejsze wersje (nie będzie działać na 2.x na pewno)