Передача параметров в шаблонную функцию через - PullRequest
9 голосов
/ 27 июня 2011

Я ищу способ передать опции шаблонизатору ERB в шаблонном действии thors.

Я наткнулся на источник cli в бандлере, где используется шаблонное действие thors, вот так:

opts = {:name => name, 
    :constant_name => constant_name, 
    :constant_array => constant_array, 
    :author_name => author_name, 
    :author_email => author_email
}

template(File.join("newgem/Gemfile.tt"),
           File.join(target, "Gemfile"),
            opts)

Но когда я добавляю такие опции в свои задачи, они не обнаруживаются ERB, я могу использовать только аргументы и функции в своем классе тор, чтобы установить переменные в шаблоне.

Понятия не имеюКак работает привязка в ruby, может быть, есть способ передать область через привязку к ERB.

Ответы [ 2 ]

13 голосов
/ 09 сентября 2011

Использование переменных экземпляра должно работать.

@name = name
template("source","target")

Мой шаблон выглядит так:

<test><%= @name %></test>

Это работает для меня. Я не пробовал передавать конкретные значения.

12 голосов
/ 30 сентября 2011

Я не могу найти никакой документации, чтобы ответить на этот вопрос, но, читая исходный код CLI Bundler, кажется, что если вы пытаетесь сослаться на параметр: author_email внутри шаблона,

Author email: <%= config[:author_email] %>

работы.

...