2016-06-09 2 views
0

Итак, я пытаюсь выполнить цикл и добавить 1 к правилу, когда атрибут result.correct_node равен атрибуту dashboard.questions.answer.text, но по какой-то причине этот цикл не работает.Ruby on Rails Loop Has-Many отношения Не работает

Моя логика: 1. Проведите цикл по каждому вопросу, проверите все результаты, проверяя, равен ли их заданный вопросник идентификатору вопроса, если да, проверьте, одинаковы ли текст и correct_node, и добавьте 1 к правильной переменной. Затем сделайте это для каждого вопроса.

Из того, что я могу сказать, когда я отлаживаю цикл, оператор if работает неправильно, и есть общие проблемы с тем, как я это делаю.

Отношения для объекта как таковые.

На приборной панели есть много вопросов. У вопросов много ответов. Результаты имеют атрибуты questionid и correct_node.

@correct = 0 
@wrong = 0 
@dashboard.questions.map do |question| 
     @results.each do |result| 

      if question.id == result.questionid 

       question.answers.map do |answer| 
        if answer.text == result.correct_node 
         @correct = @correct + 1 
        else 
         @wrong = @wrong + 1 
        end 
       end 
      end 
     end 
end 

Если кто-то может позволить мне знать, как я мог бы идти о фиксации это или то, что неправильно было бы весьма признателен. Спасибо.

+0

Добро пожаловать в переполнение стека. Пожалуйста, прочитайте «[ask]» и «[mcve]». –

+0

Спасибо за приветствие. Если есть проблема с деталями, которые я предоставил, сообщите мне, что нужно, и я был бы более чем счастлив предоставить его. – Kevin

+0

Отвечает ли ваш вопрос тому, что говорит документ справки, который вам нужен? Если нет, добавьте недостающую информацию. Начните с этого момента, а затем мы можем спросить, нужно ли что-то. Ваш код не тестируется, мы должны угадать, что содержат ваши переменные, независимо от того, содержат ли строки в вашей БД, что мы думаем, и т. Д. –

ответ

0

Выключает работу цикла, ошибка была в результате беспорядка со значениями переменных. Благодарю.

Смежные вопросы