रेडियो_बटन फॉर्म के साथ डेटाबेस तत्वों की सूची

मैं एक बहु विकल्प परीक्षा वेब ऐप बनाने की कोशिश कर रहा हूं जैसे कि आप खोज मानदंडों के आधार पर प्रश्नों का एक समूह पुनर्प्राप्त कर सकते हैं और फिर प्रश्नों का उत्तर दे सकते हैं और प्रतिक्रिया दे सकते हैं कि आपने सही उत्तर दिया है या नहीं।

मेरे प्रश्न_ नियंत्रक के पास निम्न विधि है:

def check_answer
  @question = Question.find(params[:id])
  if params[:response] == @question.answer
    @outcome = 'correct'
  else 
    @outcome = 'incorrect'
  end  
    flash[:notice] = "That is #{@outcome}."
    redirect_to :back

जहां लेआउट सूचकांक है:

<% @questions.each do |question| %>
    

<%= question.stem %>

<%= form_tag "/check_answer/#{question.id}", :method => 'get' do%> <%= radio_button_tag "response", "a" %> <%= question.option_a%> <%= radio_button_tag "response", "b" %> <%= question.option_b%> <%= radio_button_tag "response", "c" %> <%= question.option_c%> <%= radio_button_tag "response", "d" %> <%= question.option_d%> <%= radio_button_tag "response", "e" %> <%= question.option_e%> <%= submit_tag "Check Answer" %> <% end %> <% if flash[:notice] %> <div class = "notice"><%= flash[:notice] %></div> <% end %>

हालांकि जब मैं रेडियो बटनों में से एक का चयन करता हूं तो यह प्रत्येक प्रश्न के नीचे "वह (सही) सही" देता है। यह कोड के आधार पर समझ में आता है, मुझे नहीं पता कि मैं इसे कैसे बदलूं, इसलिए यह केवल 1 प्रश्न के नीचे "सही है" प्रदर्शित करता है जिस पर आप "चेक उत्तर" बॉक्स पर क्लिक करते हैं।

0

1 उत्तर

अपने प्रश्नों से, परिणामों को एनोटेट करने के लिए तर्क का एक टुकड़ा जोड़ने का प्रयास करें।

राय:

<% @correct_field ||= nil %>
<% @questions.each do |question| %>
  

<%= question.stem %>

<%= form_tag "/check_answer/#{question.id}", :method => 'get' do%> <%= radio_button_tag "response", "a" %> <%= question.option_a%><% "CORRECT!" if @correct_field == "a" %> <%= radio_button_tag "response", "b" %> <%= question.option_b%><% "CORRECT!" if @correct_field == "b" %> <%= radio_button_tag "response", "c" %> <%= question.option_c%><% "CORRECT!" if @correct_field == "c" %> <%= radio_button_tag "response", "d" %> <%= question.option_d%><% "CORRECT!" if @correct_field == "d" %> <%= radio_button_tag "response", "e" %> <%= question.option_e%><% "CORRECT!" if @correct_field == "e" %> <%= submit_tag "Check Answer" %> <% end %>

नियंत्रक:

def check_answer
  @question = Question.find(params[:id])
  if params[:response] == @question.answer
    @correct_field = @params[:response]
    @outcome = 'correct'
  else 
    @outcome = 'incorrect'
  end  
  flash[:notice] = "That is #{@outcome}."
  redirect_to :back

नियंत्रक में, बस params जो भी ऊपर वर्णित स्ट्रिंग को हल करता है, को ऊपर सेट करें।

उसने कहा, मैं इसे इस तरह से नहीं करूँगा। यह एक समस्या की तरह लगता है जिसे आंशिक और/या जावास्क्रिप्ट और AJAX कॉल का उपयोग करके हल किया जाना चाहिए। उम्मीद है कि वैसे भी मदद करता है।

0
जोड़ा