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