1
我正在Web上製作一個測試應用程序,用戶可以在其中看到一個檢查列表,標記所有適用的內容並根據他所選內容獲取結果。循環遍歷一個數組,並比較每個類別的值並返回最高分值
每一個問題都有一個類別和值,和ID喜歡拿到了最高分(添加所有值爲每個類別和回報最高)
類我已經有點成功的,下面的代碼我得到的所有回答問題的得分相加,不考慮每一個問題屬於哪個類別
@test_session.answered_questions.each do |a|
if a.answer == 1
@theResult.score = @theResult.score + a.q_value
end
@theResult.save!
end
的問題是複選框,所以如果answer == 1
複選框被標記
問題是,類別的數量是動態的..
我有一個想法,我可以循環通過@test_session.answered_questions.category.each
添加類別值的一些變量,並比較所有類別的分數已經計算出來但是,我再次有一個動態數量的變量比較
我覺得有一些地圖功能我應該爲此
UPDATE
這裏用的是我如何設置的問題類別屬性
<%= nested_form_for @personal_test do |f| %>
<div class="field">
<%= f.label "Name" %>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label "Description" %>
<%= f.text_area :description %>
</div>
<div class="field">
<%= f.fields_for :questions do |ff| %>
<%= ff.label "Question" %>
<%= ff.text_field :question_text %>
<%= ff.label "Question value" %>
<%= ff.number_field :value %>
<%= ff.select :category, options_for_select(Category.all.collect {|p| [ p.name, p.id ] }, :selected => ff.object.category), :prompt => 'Category' %>
<% end %>
<% end %>
是的,我相信這是正是我一直試圖做的感謝,但即時得到一個錯誤'answered_questions.category.each'是一個未定義的方法,它不是一個真正的方法,但一個字符串屬性,每個問題都有,生病讓我的帖子告訴你我是如何設置的 – Matti
我將需要你的模型代碼來告訴你到底應該如何看待循環。評論告訴你你想要循環的東西,所以如果你不能自己想出你的模型代碼。 –
以及我不認爲我的模型會幫助,因爲他們是非常空的除了attr_accessors,我明白你寫的代碼,它確實幫助了很多 - 但我認爲我的問題是'category'不是一個模型其屬性,所以我不能在你使用'Category.all.collect'的表單代碼中使用'.each'函數 – Matti