То, что я пытаюсь сделать, - это создать базовое приложение на карточках на рельсах. На данный момент все, что я ищу, - это функциональность, чтобы перебирать список карточек, опрашивать пользователя и сообщать пользователю, были ли они правы или нет. В ruby мне не понадобилось много времени, чтобы написать:
class Card
attr_accessor :answer, :question
def initialize(answer = "", question="")
@answer = answer
@question = question
end
def quiz
puts "What does #@question mean?"
answer = gets.chomp
if answer == @answer
puts "Right"
return true
else
puts "Wrong"
return answer
end
end
end
class Cardlist
attr_accessor :Cards
def initialize(Cards = [])
@Cards = Cards
end
def quiz
Cards.each do |w|
w.quiz
end
end
end
Проблема, с которой я столкнулся с рельсами, заключается в том, чтобы выяснить, куда поместить логику, чтобы перебрать все карты в списке. Я сделал эти две модели:
class Card < ActiveRecord::Base
belongs_to :cardlist
end
и
class Cardlist < ActiveRecord::Base
has_many :cards
end
Я знаю, что логика приложения должна идти в контроллере, но если бы я выполнил действие "викторина" для моего контроллера Cardlist, как бы я сделал так, чтобы он перебирал все карточки? После каждой сгенерированной страницы викторины мне нужно получить ответ от пользователя, ответить (возможно, прошить), правильно ли это или нет, а затем перейти к следующему вопросу. Должна ли какая-либо из этой логики перейти в представление, чтобы убедиться, что оно отправляет обратно введенные пользователем ответы на контроллер? Как отправить информацию обратно в контроллер, не записав ее в БД?