Как сделать значение доступным во всех жидких шаблонах - PullRequest
3 голосов
/ 13 марта 2011

Я использую Liquid с Sinatra и хотел бы сделать определенное значение (особенно Sinatra::Application.environment) доступным во всех шаблонах, не определяя его как локальное в каждом get / post.Например:

В app.rb (мой основной файл приложения):

# nothing in here about the variable
get '/some/route' do
  # or here
  liquid :my_template
end

В app.rb - мой основной файл приложения или что-то, что мне может потребоваться / включить:

some_awesome_technique do
  def app_env
    Sinatra::Application.environment
  end
end

В любом шаблоне:

<p>
  {% if environment == :development %}
    Never see this in production
  {% end %}
</p>

<!-- or even -->

<p>
  {% if dev_mode %}
    Or this...
  {% endif %}
</p>

Меня не волнует реализация до тех пор, пока мне не нужно размещать избыточный код на каждом маршруте.Заранее спасибо!

1 Ответ

3 голосов
/ 13 марта 2011

Примерно так будет работать

before do
  @env = Sinatra::Application.environment
end

тогда в вашем шаблоне:

{% if @env == :development %}
  Boo!
{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...