在 erb 中为 Chef 编写这样的逻辑的最简洁方法是什么?
<% if node[:ipynb][:NotebookApp][:certfile] %>
c.NotebookApp.certfile = <%= node[:ipynb][:NotebookApp][:certfile] %>
<% end %>
在 erb 中为 Chef 编写这样的逻辑的最简洁方法是什么?
<% if node[:ipynb][:NotebookApp][:certfile] %>
c.NotebookApp.certfile = <%= node[:ipynb][:NotebookApp][:certfile] %>
<% end %>
我不确定您的方法有什么问题,但是如果您想要单线,这应该可行:
<%= "c.NotebookApp.certfile = #{node[:ipynb][:NotebookApp][:certfile]}" if node[:ipynb][:NotebookApp][:certfile] %>
对于 Ruby 中的布尔表达式,nil并且false值转换为false,其他一切都是true. 如果您在 中有任何值node[:ipynb][:NotebookApp][:certfile],它将评估为 true 并打印字符串。否则,它将不打印任何内容。