Я создаю игровое приложение, которое содержит несколько уровней. Я хочу, чтобы моя игра перешла на следующий уровень, когда пользователь предоставил правильный ответ. В это время мой код может перейти от уровня 1 к уровню 2, но один раз на уровне 2 он не может перейти за пределы уровня до уровня 3. Даже когда предоставляется правильный ответ, игра не будет проходить за пределами уровня 2.Как запустить метод несколько раз в контроллере Rails
Вот мой код контроллера:
class Game1Controller < ApplicationController
def play
@game1 = Game1lv.find(params[:level])
@game1l = Game1lv.where(:level => @game1).limit(1).pluck(:imagelink)
@game1a = Game1lv.where(:level => @game1).limit(1).pluck(:answer)
@game1link = @game1l[0].to_s
@game1answer = @game1a[0].to_s
@game1answer_user = params["answer"]
if @game1answer_user == @game1answer
redirect_to game1_play_path(@game1.level += 1), :flash => { :success => "You are right! Now try the next question" }
end
end
end
Я пытался использовать for
петлю внутри моего метода воспроизведения, но Rails побудила ошибку:
Render and/or redirect were called multiple times in this action.
Что я делаю не так, и как я могу сделать это так, что мои пользователи могут перейти за пределы 2-го уровня?
Вы должны сделать это из своей «формы». В вашем ответе, собирающем 'form', динамически выставляем' form_url' в качестве пути метода воспроизведения. – Emu