2012-12-09 7 views
11

layoutファイルがhamlであることは、私たちが開発環境にいるのかビルド環境にあるのかを確認したいと思います。私たちはミドルマンを使用しています。コードの実行環境を知るには?

私はこのような何かをしたいと思います:

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

は私がいない成功を収めてconfig.rbファイルにカスタム変数をRubyの環境変数にアクセスするだけでなく、定義しようとしました。

答えて

28

- あなたは記号ではなく文字列に対してチェックする必要があります。

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

仲介も使いやすいかもしれdevelopment? and build? methodsを追加します。

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

これはERBでも有効です:

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

可能であれば、ロジックとデータを分離する必要があります。あなたのコントローラであなたの環境を決定し、ビュー(HAMLレイアウトファイル)に送られるデータを切り替える。

通常、環境変数にフラグを設定し、コード内でENVにアクセスします。例えば、シナトラはそのRACK_ENV記号を使用してコード内の開発/テスト/本番の設定が利用できるようになります:

 
: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

あなたがあなた自身をロールバックする必要がある場合は、それはそれについて移動する良い方法です。あなたはほとんどそれが正しいんだ

-1

次の記号を使用してください:middlemanが作成する環境記号HAMLと組み合わせる http://rubydoc.info/github/middleman/middleman/Middleman/Application#environment-instance_method

- あなたが何かのように行うことができます:■デフォルトであなたも開発効率向上を使用することができます

「を構築」するための環境値:middlemansは、プロセスが変化し構築することを

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

注意を?あなたはDEV上かじゃないかどうかをテストしますhttp://rubydoc.info/github/middleman/middleman/Middleman/Application#development%3F-instance_method

上記のすべての仲介3.0.6に適用され、小さい方のバージョン(確かに2.xの上では動作しません)

上動作しない場合がありますが
関連する問題