Hi, I have been trying to write code for making an online exam management system. I could not think about a logic to implement the actual exam. Here is the problem: I have a questions table with fields like- id, question, opt1, opt2, opt3, opt4 and correctans. I want to read all the records from this table but I want to display only one record at a time for user to answer the question. User then clicks next to see the next question and choices and so on till the end of the records. I don''t know how to implement this. I did @questions=Question.find(:all) Now how can I use this @questions and display only one record at a time so that user answers the question and then I can do something to store the user response? OR if I am wrong, please suggest good logic to implement this. Thanks -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
First of all, online exam must be have category of exam. each exam must be up to date and never the same each date. out of your case i would like to try my mind in this case now. ----------------------------------------------------------------------- Class Question < ApplicationController def start_page #I use exam category_id in Questions table #In this case I would like starting Rails Exam with category_id =2 #in Answer table should has column question_id, user_id, time_answer, answer #dont forget to store your user_id in session[:user_id] #and set up in model for relational model or table. if session[:id_questions] @disable_button_answer = true else @all_question = Question.find(:all, :conditions=>[''category_id=?'', 2]) session[:id_questions] = @questions.map(&:id) @first_question = @all_question.first @user_answer = Answer.new end end #here method for user answer question def answer @used_id = [] << params[:user_answer][:question_id] params[:user_answer][:user_id]= session[:user_id] params[:user_answer][:time_answer]= Time.now @user_answer = Answer.new(params[:user_answer]) if @user_answer.save session[:id_questions] = session[:id_questions] - @used_id if session[:id_questions].blank? redirect_to :action=> :complete_page else redirect_to :action=> :next_question, :id=> session[:id_questions].first, :last_page_id => @used_id end end end def next_question @question = Question.find(params[:id]) @user_answer = Answer.new @back_page = params[:last_page_id] @next_page = session[:id_questions][1] end ----------------------------------------------------------------------- Suggestion : - For button NEXT PAGE in Question PaGe, put use params next_page and use this params in metod for showing NEXT PAGE to identify next question. - The rule is up to you, what you want disable button answer if user use next or back page button and store it in database such as an Un-answer page or else. Peace Regards, Y. Reinhart A P Blog : teapoci.blogspot.com -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Rails Terrorist wrote:> if @user_answer.save > session[:id_questions] = session[:id_questions] - @used_id > if session[:id_questions].blank? > redirect_to :action=> :complete_page > else > redirect_to :action=> :next_question, :id=> > session[:id_questions].first, :last_page_id => @used_id > endthe correct is : redirect_to :action=> :next_question, :id=> session[:id_questions].first, :last_page_id => @used_id[0] if you find any error, keep post it, I will review back when I''m online. :) I hope some my brothers can develop my code and give good suggestion from my code or maybe can provide new code. :) Have nice weekend Y. Reinhart A P Blog : teapoci.blogspot.com -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Rails Terrorist wrote:> Rails Terrorist wrote: > if @user_answer.save > session[:id_questions] = session[:id_questions] - @used_id > if session[:id_questions].blank? > redirect_to :action=> :complete_page > else > redirect_to :action=> :next_question, :id=> > session[:id_questions].first, :last_page_id => @used_id > endthe correct is : redirect_to :action=> :next_question, :id=> session[:id_questions].first[0], :last_page_id => @used_id[0] if you find any error, keep post it, I will review back when I''m online. :) I hope some my brothers can develop my code and give good suggestion from my code or maybe can provide new code. :) Have nice weekend Y. Reinhart A P Blog : teapoci.blogspot.com -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Rails Terrorist wrote:> Rails Terrorist wrote: >> Rails Terrorist wrote: >> if @user_answer.save >> session[:id_questions] = session[:id_questions] - @used_id >> if session[:id_questions].blank? >> redirect_to :action=> :complete_page >> else >> redirect_to :action=> :next_question, :id=> >> session[:id_questions].first, :last_page_id => @used_id >> end > > > the correct is : > > redirect_to :action=> :next_question, :id=> > session[:id_questions].first[0], :last_page_id => @used_id[0] > > if you find any error, keep post it, I will review back when I''m online. > :) > > I hope some my brothers can develop my code and give good suggestion > from my code or maybe can provide new code. :) > > Have nice weekend > Y. Reinhart A P > Blog : teapoci.blogspot.comThank you brother. You helped me a lot. I did it.. Actually I was implementing someting too simple with single table for practice. But now I will use multiple tables with relations and a real working implementation. Thanks Great job. Keep doing. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---