2016-02-23 88 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

如果您需要從視圖訪問控制器中設置的數據,請執行您通常的操作。使用類變量。任何以'@'開頭的變量都應該可以從視圖中訪問。 –