根据当前页面动态引用中间人配置属性

时间:2014-03-10 14:33:13

标签: ruby json erb middleman

我的Middleman项目中有一个JSON数据文件,其中有一个对象,其中包含一个网站的5个部分的信息,我们正在为新项目构建原型。以下是该文件的一部分:

"industries": {
  "Insulation": {
    "url": "insulation",
    "color": "#B48126"
  },
  "Roofing": {
    "url": "roofing",
    "color": "#52bd4a"
  }, ...

我想根据当前页面从该对象中提取属性。

例如,如果我在绝缘部分的页面上,我想从该文件中获取用于绝缘的高亮颜色并将其用作原型的一部分,以便我们可以为客户端尝试不同的颜色。

在每个.erb模板的顶部,我可以非常轻松地将此页面数据变量用于表示行业:

;;;
"product": "Commerical Insulation",
"division": "insulation"
;;;

然后在模板的下方,使用以下内容:

  <img  class="img-responsive center-block" 
        src="<%= lorem.image('1140x100', 
              :text => current_page.data.product + ' image', 
              :color => data.lists.industries.{current_page.data.division}.color) %>" />

我知道{current_page.data.division}不正确(抛出语法错误,意外的tLBRACE )。

我是Ruby和ERB的新手,所以如果有更好的方法来解决这个问题,我愿意接受建议。

1 个答案:

答案 0 :(得分:0)

你试过data.lists.industries[current_page.data.division].color吗?