我在rails视图部分的开头有这个:
<% enabled = true unless defined?(enabled) %>
这是为了处理调用视图未通过enabled
本地传递的情况,方法是设置默认值。
但enabled
未设置为true。
我知道构造enabled ||= true
,但我不能在这里使用它,因为传入的值可能是false
。这将被true
覆盖。
答案 0 :(得分:1)
这解决了它:
<%
unless defined?(enabled)
enabled = true
end
%>
看起来这是因为ruby解析器的工作原理。
问题中的后缀条件是在赋值代码之后,我认为解析器导致变量以nil
值生成,使defined?
返回false。
答案 1 :(得分:0)
通过将com.android.support:appcompat-v7:22.1.1
与OR运算符defined?
组合在一起,可以达到与您最初尝试的类似的效果:
||
示例:
defined?(enabled) || enabled = true