Radius标记 - 将变量作为标记参数传递

时间:2013-09-02 11:22:02

标签: ruby-on-rails radiant

我已经安装了radiant variables extension,所以现在我可以定义var like

 <r:set_vars nav_pages="Tour: /tour | News: /news | Locations: /locations" />

我有意在导航片段中使用它,比如

  <r:navigation urls="<r:puts value_for="vars[nav_pages]"/>">
    <r:normal><li><a href="<r:path />"><r:title /></a></li></r:normal> 
  </r:navigation>

当然这不起作用,至少因为引用。有办法以某种方式实现这个吗?我真正需要的是一些常见的方法来使用变量,可以使用标签访问,作为一个片段参数。或者应该有一些方法来访问没有标签的变量?

1 个答案:

答案 0 :(得分:0)

确实不可能像这样嵌套半径标签。有一种方法可以解决这个问题,即使用双标签。我已经成功地通过这种方式攻击了其他标签,如果它们是“双重”标签(<r:tag></r:tag> i.o. <r:tag/>),它们会接受来自另一个半径标签的参数 所以,随着黑客的到位,你可以做到这一点:

<r:navigation>
  <r:normal><li><a href="<r:path />"><r:title /></a></li></r:normal> 
  <r:urls><r:puts value_for="vars[nav_pages]"/></r:urls>
</r:navigation>

这需要在这样的地方调用tag.expand;

urls = tag.attr['urls'] || tag.expand