有时在我的模板中,当这些值没有作为渲染函数中的参数传递时,我想为某些CSS属性定义默认值,如下所示:
height: <%= if @height do %><%=@height%><% else %>"50px";<%end%>
我想知道是否有更好(更简洁)的方式。
答案 0 :(得分:6)
您可以使用
这一事实@
变量也可以通过名为assigns
,||
,则nil
会返回右侧值
醇>
并写:
<%= assigns[:height] || "50px" %>
获得与if
/ else
相同的行为。
修改:如果您始终设置@height
,即使值为nil
,您也可以使用更少的代码执行此操作:
<%= @height || "50px" %>
即使@height
未设置为任何值,上一代码仍然有效,但如果未设置@height
,则会引发异常。