0

在 erb 中为 Chef 编写这样的逻辑的最简洁方法是什么?

<% if node[:ipynb][:NotebookApp][:certfile] %>
   c.NotebookApp.certfile = <%= node[:ipynb][:NotebookApp][:certfile] %>
<% end %>
4

1 回答 1

2

我不确定您的方法有什么问题,但是如果您想要单线,这应该可行:

<%= "c.NotebookApp.certfile = #{node[:ipynb][:NotebookApp][:certfile]}" if node[:ipynb][:NotebookApp][:certfile] %>

对于 Ruby 中的布尔表达式,nil并且false值转换为false,其他一切都是true. 如果您在 中有任何值node[:ipynb][:NotebookApp][:certfile],它将评估为 true 并打印字符串。否则,它将不打印任何内容。

于 2013-07-31T12:21:25.887 回答