Получил ответ в комментариях в указанном первом ответе, это все время проверялось, мне просто нужно было добавить вспышку к представлению.Ruby Quiz setup
Как я могу изменить этот код, чтобы убедиться, что ответ верен?
Я после этого учебника http://quizzsystem.comyr.com/web-page/
- ошибки я получаю сейчас, когда после нажатия кнопки отправить ответ «нет маршрута матчей [POST]„/ quizzs/регистрацию/1“- так это выглядит, как это не проверяя ответ и перенаправляет, но только поиск другой странице под названием «проверить», чтобы отобразить.
, что он должен сделать, это запустить проверку (/quizzs_controller.rb) на ответ, чтобы проверить, если это правильно или не
/quizzs_controller.rb
class QuizzsController < ApplicationController
before_action :set_quizz, only: [:show, :edit, :update, :destroy]
before_filter :authenticate, :except=>[:home, :answering, :answer, :check]
...
def check
@quizz = Quizz.find(params[:id])
respond_to do |format|
if params[:ans][0][email protected]
flash[:notice] = "<b>Congratulation. You gave the correct answer to the question: " + @quizz.question + "</b>"
format.html { redirect_to({:controller => "quizzs", :action => "answering",:id=>"1" }) }
format.xml { head :ok }
else
flash[:notice] = "<b p style='color: red'>I am sorry but that is not the right answer to the question: " + @quizz.question + "</b>"
format.html { redirect_to({:controller => "quizzs", :action => "answering",:id=>"1" }) }
format.xml { head :ok }
end
end
end
...
Так что, когда вы нажмете кнопку в окне ниже он работает «проверить», чтобы проверить ответ, отобразит соответствующее сообщение на странице перенаправляет к которому /answering.html.erb ,
/answer.html.erb
* Я добавил знак «=» перед тем form_tag, что единственное изменение от исходного кода (если не опечатка, я до сих пор не поймали)
...
<%= form_tag(:action => "check",:id => @quizz.id) do %>
<p>
<b>The correct answer is number: </b>
<%= text_field :ans,params[:ans]%>
</p>
<p><%= submit_tag("check")%></P>
<%end%>
<%= link_to 'Back', {:controller => "quizzs", :action => "answering",:id=>"1" } %>
...
оказывают на эту страницу и отобразить сообщение
/answering.html.erb
<h2>Which question do you want to answer</h2>
<table>
<tr>
<th>Question</th>
</tr>
<%@quizzs.each do |quizz|%>
<tr>
<td><%=h quizz.question %></td>
<td><%= link_to '<> Answer this', :controller => "quizzs", :action => "answer", :id =>quizz.id%></td>
</tr>
<%end%>
</table>
<br />
Но вместо этого происходит поиск маршрута под названием «проверка» вместо проверки правильности вопроса.
Надеюсь, это лучшая презентация моего вопроса, я все еще новичок в этом.
Я хотел бы помочь вам, если вы просто сузили свой вопрос и соответствующий код/ошибки. Помощь с вопросами начинающего, как правило, быстрая и тщательная, пока вы не выбиваете нас со стенами текста и огромными многочастными вопросами. Заранее спасибо. – toolz
сожалею о том, что я попытался сузить фокус, чтобы быть более конкретным, надеюсь, что здесь лучше представленный вопрос. –