0

私はクイズを作成し、それをページごとにランダムに表示したいと考えています...たとえば、最初に質問_id = 2の乱数を取得し、次に4、次に再び2など..同じ質問を繰り返したくないときにビューで次へをクリックします

これが私のコントローラーです

def answer 
 @user = current_user
 @student = Student.find_by_admission_no(@user.username)
 @exam_group = ExamGroup.find(params[:exam_group_id])
 @answer = Answer.new
 n = Question.count
 @ans = random1 
end
def ans
 @user = current_user
 @student = Student.find_by_admission_no(@user.username)
 @exam_group = ExamGroup.find(params[:exam_group_id])
end
def create
 #@ans = Question.find_by_id(1)
 @answer = Answer.new(params[:ans])
 @answer.answer = params[:answer]
 #@answer.questions_id = @ans.id
 if @answer.save
   redirect_to :controller => 'answers', :action => 'final'
 end
end
def random1
 rand_id = (Question.count)
 rand_record = Question.first(:conditions => [ "id = ?", rand_id])
end
def random2
 if (c = Question.count) != 0
   Question.find(:first, :offset =>rand(c))
 end
end

ビューで次をクリックすると

 <div class = "main">
   <% form_for @answer do |f|%>
    <%= render :partial => 'answers/ans' %>  
   <% end %>
 </div>
 <div class="extender"></div>  

および回答/ ans

<div class = "answers">

<div class = "y">
  <div class = "label_field_pair">
    <label for "questions">
      <%= @ans.id %> ) <%= @ans.ques %>
    </label>  
  </div> <br>
    <div class = "label_field_pair2">
      <label for "options">
        <div id = "option-1">
          <%= radio_button_tag "answer", "#{@ans.id}ans1"%><%= @ans.ans1  %>
        </div><br>
        <div id = "option-2">
          <%= radio_button_tag "answer", "#{@ans.id}ans2"%><%= @ans.ans2 %>
        </div><br>
        <div id = "option-3">
          <%= radio_button_tag "answer", "#{@ans.id}ans3"%><%= @ans.ans3 %>
        </div><br>
        <div id = "option-4">
          <%= radio_button_tag "answer", "#{@ans.id}ans4"%><%= @ans.ans4  %>
        </div><br>
      </label>

</div>
<%= link_to "Next", :partial =>"ans"%>

</div>  
</div>

私を助けてください、ありがとう

4

1 に答える 1