【问题标题】:How to put a if statement inside a loop within a chef template file?如何将 if 语句放在厨师模板文件的循环中?
【发布时间】:2016-06-17 00:18:59
【问题描述】:

这在没有 if 语句的情况下效果很好,但不确定使用 if 的最佳方法是什么?

 <% node['some-node']['datasource'].each do |dbname,values| -%>
              <%= if (dbname.to_s != 'ReferenceData') -%>
    <Resource auth="${JDBC.<%= dbname %>.auth}" driverClassName="${JDBC.<%= dbname %>.driverClassName}" initialSize="${JDBC.<%= dbname %>.initialSize}" factory="${JDBC.<%= dbname %>.factory}" testWhileIdle="${JDBC.<%= dbname %>.testWhileIdle}" timeBetweenEvictionRunsMillis="${JDBC.<%= dbname %>.timeBetweenEvictionRunsMillis}" minEvictableIdleTimeMillis="${JDBC.<%= dbname %>.minEvictableIdleTimeMillis}" maxActive="${JDBC.<%= dbname %>.maxActive}" minIdle="${JDBC.<%= dbname %>.minIdle}" name="${JDBC.<%= dbname %>.name}" password="${JDBC.<%= dbname %>.password}" testOnBorrow="${JDBC.<%= dbname %>.testOnBorrow}" type="${JDBC.<%= dbname %>.type}" url="${JDBC.<%= dbname %>.url}" username="${JDBC.<%= dbname %>.userName}" validationInterval="${JDBC.<%= dbname %>.validationInterval}" validationQuery="${JDBC.<%= dbname %>.validationQuery}" connectionProperties="${JDBC.<%= dbname %>.connectionProperties}"/>
               <% end %>
     <% end %>

【问题讨论】:

    标签: chef-infra erb chef-solo chef-template


    【解决方案1】:

    您想使用&lt;% 而不是&lt;%== 版本适用于您想要从中捕获输出的表达式,没有的版本适用于您想要用于结构但它的值无关紧要的 Ruby 代码。您可能还想使用 &lt;%- 来打开空白修剪。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-30
      • 1970-01-01
      相关资源
      最近更新 更多