作者:PHP大傻子 | 来源:互联网 | 2023-02-03 12:03
有时在我的模板中我想为某些CSS属性定义默认值,当这些值不作为渲染函数中的参数传递时,如下所示:
height: <%= if @height do %><%=@height%><% else %>"50px";<%end%>
我想知道是否有一种更好(更简洁)的方式.
1> Dogbert..:
你可以使用这个事实
@
变量也可以通过名为的地图访问assigns
,
使用括号语法访问地图中不存在的键会返回nil而不是引发异常,
||
返回右侧值,如果是左侧值nil
,
和写:
<%= assigns[:height] || "50px" %>
获得与if
/ 相同的行为else
.
编辑:如果你总是设置@height
,即使值是nil
,你可以使用更小的代码执行此操作:
<%= @height || "50px" %>
即使@height
未设置为任何值,前面的代码也会起作用,但如果未设置,则会引发异常@height
.