11

layoutファイルでhaml、私たちが開発環境と構築環境にいるかどうかを判断したいと思います。Middlemanを使用しています。

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

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

Rubyの環境変数にアクセスしようとしましたが、ファイルにカスタム変数を定義しようとしましたがconfig.rb、成功しませんでした。

4

3 に答える 3

30

あなたはほぼそれを正しく理解しています-あなたは文字列ではなく記号に対してチェックする必要があります:

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

Middlemanは、より使いやすいメソッドdevelopment?build?メソッドも追加します。

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

これはERBでも機能します。

<% if development? %>
<!-- Development Code -->
<%= javascript_include_tag "Dev.js" %>
<% end %>
于 2012-12-09T16:57:59.207 に答える
0

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

通常、環境変数にフラグを設定し、からコードでフラグにアクセスしますENV。たとえば、Sinatraは、RACK_ENVシンボルを使用してコード内で開発/テスト/本番設定を利用できるようにします。

:environment-構成/デプロイメント環境シンボル
展開環境を指定します。通常、次のいずれかに設定されます
:development、:test、または:production。:environmentのデフォルトは
RACK_ENV環境変数の値(ENV ['RACK_ENV'])、または
:RACK_ENV環境変数が設定されていない場合の開発。

環境は明示的に設定できます。

set:environment、:production

あなたがあなた自身を転がさなければならないならば、それはそれについて行く良い方法です。

于 2012-12-09T15:49:39.160 に答える
-1

ミドルマンがデフォルトで作成する:environmentシンボルを使用します:http: //rubydoc.info/github/middleman/middleman/Middleman/Application#environment-instance_method

hamlと組み合わせる-次のようなことができます:

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

仲介者のビルドプロセスは:environment値を「build」に変更することに注意してください

あなたも開発を使うことができますか?開発中かどうかをテストするには:http://rubydoc.info/github/middleman/middleman/Middleman/Application#development%3F-instance_method

上記はすべてミドルマン3.0.6に適用され、それより前のバージョンでは機能しない可能性があります(2.xでは確実に機能しません)

于 2012-12-09T19:47:55.727 に答える