2016-02-23 51 views
0

说当你有{'name' => 'tobi', 'show-name' => 'This is {{name}}' }液体 - 你可以有一把钥匙,里面还有另一把钥匙。

哈希和模板是"guess who this is? {{show-name}}"

我想要的输出为guess who this is? This is tobi

但它是"guess who this is? {{show-name}}"

这只是一个简单的例子。但我需要链接例如

{'guide' => 'racing', 'guide-link' => '<a href='/guides/{{guide}}'>{{guide}}</a>' }` 

模板:{{guide-link}}

输出我想:<a href='/guides/racing'>racing</a>

输出我得到<a href='/guides/{{guide}}'>{{guide}}</a>

可以这样用液体做了什么?我想你可能会称它嵌套了散列的键或值。

注意:我使用红宝石上的液体宝石,在轨道上重要。

回答

0

而不是使用哈希,为什么不把值存储在一个字符串和输出?

本质,而不是有类似

foo = { 
     'guide' => 'racing', 
     'guide-link' => '<a href='/guides/{{guide}}'>{{guide}}</a>' 
     } 

你可以只使用一个字符串变量,像这样。

guide = 'racing' 
foo = "<a href='/guides/#{guide}'>#{guide}</a>" 

#{guide}语法的

foo = "<a href='/guides/" + guide.to_s + "'>" + guide.to_s + "</a>" 

但是等效,而不是构建自己的链接,这听起来像你应该使用,将您的模型生成的链接助手之一。至少,请利用link_to

+0

那么'#{guide}'在页面上访问一个本地'guide' ruby​​变量?不幸的是,我不能在这种情况下使用'link_to'。 – Rob

+0

只是测试它,但有一个问题。它的工作原理是当我手动在控制器中使用控制器中的局部变量生成哈希,但是如果我从数据库中取出哈希,我在哪里放置局部变量?它仍然在控制器中吗? – Rob

+0

如果您需要从视图访问控制器中设置的数据,请执行您通常的操作。使用类变量。任何以'@'开头的变量都应该可以从视图中访问。 –