【问题标题】:Reference middleman config property dynamically based on current page根据当前页面动态引用中间人配置属性
【发布时间】:2014-03-10 14:33:12
【问题描述】:

我的 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 的新手,所以如果有更好的方法来解决这个问题,我愿意接受建议。

【问题讨论】:

    标签: ruby json erb middleman


    【解决方案1】:

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

    【讨论】:

    • 他的方法是在中间人应用程序中使用的常规构造,并且他在混合 img 标记中的两个数据源时遇到问题(引发语法错误)。我的目标是帮助他解决这个具体的错误。这有什么问题?
    • @Pranav,感谢您为我指明正确的方向。我终于遇到了这种语法并发现它有效,但我很感激确认这是一个很好的方法。
    • 答案没有错,如果有帮助,当然也有帮助。但它的发布方式似乎你是在问而不是回答...... :)
    猜你喜欢
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2013-02-24
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    相关资源
    最近更新 更多