我正在尝试在测量员(http://github.com/NUBIC/surveyor/)中设置一个问题,该问题的下拉框的值为1到50.如果用户在第一个问题中选择1,则只能看到下一个问题。这是我的代码:
survey "Test survey dependency", :default_mandatory => true do
section "questions" do
q_1 "Click on 1 to see the next question", :pick => :one, :display_type => :dropdown
((1..49).to_a + ["50 or more"]).each{|num| a num.to_s, reference_identifier: num.to_s}
q "Hello?"
a "Hello"
dependency :rule => "A"
condition_A :q_1, "==", {:answer_reference => "1"}
end
end
现在,这应该将:q_1
与:a_0
进行比较。然而,这是我得到的错误:
rake surveyor FILE=surveys/survey.rb
rake aborted!
Bad references: q_1, a_0
/home/ari/.rvm/gems/ruby-1.9.3-p392/gems/surveyor-1.3.0/lib/surveyor/parser.rb:59:in `instance_eval'
/home/ari/.rvm/gems/ruby-1.9.3-p392/gems/surveyor-1.3.0/lib/surveyor/parser.rb:120:in `report_lost_and_duplicate_references'
/home/ari/.rvm/gems/ruby-1.9.3-p392/gems/surveyor-1.3.0/lib/surveyor/parser.rb:84:in `method_missing'
(eval):1:in `parse'
如果我将condition_A更改为condition_A :q_1, "==", {:string_value => "1"}
,它会被成功解析,但下一个问题仍然没有显示。
示例中的所有内容kitchen_sink_survey.rb都可以正常工作。
所以看起来手动设置:reference_identifier
并没有做任何事情。这是一个bug还是设计?除了测试实际值之外,我可以做些什么吗?
答案 0 :(得分:0)
这实际上是测量师的一个错误,但现在已在github上修复:https://github.com/NUBIC/surveyor/commit/a9b68f668da936fbe16fc89448e53c463b867dc0