2013-04-03 54 views
1

我想在驗船師(http://github.com/NUBIC/surveyor/)中設置一個值爲1到50的下拉框。下一個問題應該只在用戶選擇時纔可見1在第一個問題。這裏是我的代碼來做到這一點:自動生成下拉依賴於驗船師(Rails gem)

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 

現在,這應該與:a_0比較:q_1。然而,這是我的錯誤:

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不會做任何事情。這是一個錯誤還是設計?除了測試實際價值之外,我可以做任何事嗎?

+0

你在做什麼似乎像它應該工作。我也可以使用不帶循環的':reference_identifier =>「1」'語法來重現它,所以它不是特定於循環。您能否在驗船師的追蹤器中提交錯誤? –

+0

錯誤報告:https://github.com/NUBIC/surveyor/issues/439 – geniass

+0

謝謝大家,錯誤已修復 – geniass

回答