上面的答案這將是巨大的,有一個可以用文字和變量被稱爲像
{% assign v = 'art' %}
{% link_to_article v %}
標籤或
{% link_to_article 'art' %}
或
{% link_to_article "art" %}
,也當然
{% link_to_article include.article %}
爲了讓我提出一個輔助函數
def get_value(context, expression)
if (expression[0]=='"' and expression[-1]=='"') or (expression[0]=="'" and expression[-1]=="'")
# it is a literal
return expression[1..-2]
else
# it is a variable
lookup_path = expression.split('.')
result = context
puts lookup_path
lookup_path.each do |variable|
result = result[variable] if result
end
return result
end
end
而且在渲染只需調用輔助函數來獲取文字或變量的值。
def render(context)
v = get_value(context, @markup.strip)
end
僅供參考,初始化劑是這樣的:
def initialize(tag_name, markup, tokens)
@markup = markup
super
end
你怎麼測試呢? – mhenrixon