我有一个模型方法,它在.each
块之前定义了一个局部变量。然后该块迭代一个数组并根据某些内容是否为true
来增加计数。有问题的变量是true_count
。我得到一个"未定义的局部变量" true_count
的错误,我无法弄清楚。我对Rails和编码也比较陌生。
project.rb:
def displaycount
d = [self.backlog_display, self.committed_display, self.qa_display, self.started_display, self.completed_display, self.accepted_display]
true_count == 0
d.each do |d|
if d == true
true_count += 1
end
end
end
导致此错误的原因是什么?
答案 0 :(得分:3)
您正在进行比较,而不是使用变量进行定义...
true_count == 0
必须为true_count = 0
答案 1 :(得分:1)
问题出在这一行
true_count == 0
应为true_count = 0
<强>为什么吗
==
用于比较,例如
if a == 0
puts 'a is zero'
else
puts 'a is not Zero'
end
=
仅用于指定值ta变量。例如
a=0 #Here is defined as Zero
希望有所帮助!
答案 2 :(得分:0)
从以下位置更改此行:
true_count == 0
为:
true_count = 0
您需要分配变量,而不是检查它是否等于零。
答案 3 :(得分:0)
def display_count
[ backlog_display,
committed_display,
qa_display,
started_display,
completed_display,
accepted_display].inject(0) {|result,display| result + ( display ? 1 : 0 ) }
end