Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 10th, 2012  |  syntax: None  |  size: 0.88 KB  |  hits: 6  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Rails 3 ActiveRecord nested associations select query
  2. def quiz
  3.     @quiz = Quiz.find(params[:id])
  4.  
  5.     @questions = @quiz.questions.select('id, content') # returns only selected fields
  6.     @results = @quiz.results.select('id, content, points_limit') # returns only selected fields
  7.  
  8.     @questions.each do |question|
  9.         question['answers'] = question.answers.select('id, content, points') #returns whole object
  10.     end
  11.  
  12.     @return = Hash.new
  13.     @return['questions'] = @questions
  14.     @return['results'] = @results
  15.  
  16.     respond_to do |format|
  17.         format.json { render json: @return }
  18.         format.xml { render xml: @return }
  19.     end
  20. end
  21.        
  22. question.answers.select('id, content, points')
  23.        
  24. @answers = Answer.select([:id, :content, :points])
  25.                  .where(question_id: @questions.pluck(:id))
  26.        
  27. SELECT id, content, points
  28. FROM answers
  29. WHERE question_id in (<question_ids array>)