首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将选项传递给thor中的模板函数

将选项传递给thor中的模板函数
EN

Stack Overflow用户
提问于 2011-06-28 03:43:01
回答 2查看 3.2K关注 0票数 11

我正在寻找一种方法来传递选项,以ERB模板引擎在模板的行动。

我偶然发现了bundler cli源代码,其中thors模板操作的用法如下:

代码语言:javascript
复制
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)

但是当我在我的thor任务中添加这样的选项时,ERB找不到它们,我只能使用我的thor类中的参数和函数来设置模板中的变量。

我不知道绑定在ruby中是如何工作的,也许有一种方法可以通过绑定传递一个作用域到ERB。

EN

回答 2

Stack Overflow用户

发布于 2011-09-09 20:36:02

通过使用实例变量,它应该可以工作。

代码语言:javascript
复制
@name = name
template("source","target")

我的模板如下所示:

代码语言:javascript
复制
<test><%= @name %></test>

这对我很有效。我还没有尝试传递特定的值。

票数 14
EN

Stack Overflow用户

发布于 2011-09-30 04:35:43

我找不到任何文档来回答这个问题,但是通读Bundler CLI的源代码,似乎如果您试图在模板中引用:author_email参数,

代码语言:javascript
复制
Author email: <%= config[:author_email] %>

很管用。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6498058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档