在Surveyor中自动生成具有依赖关系的下拉列表(Rails gem)

时间:2013-04-03 13:13:35

标签: ruby-on-rails ruby surveyor-gem

我正在尝试在测量员(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还是设计?除了测试实际值之外,我可以做些什么吗?

1 个答案:

答案 0 :(得分:0)

这实际上是测量师的一个错误,但现在已在github上修复:https://github.com/NUBIC/surveyor/commit/a9b68f668da936fbe16fc89448e53c463b867dc0