1
我正在尝试为我制作的测验管理员制作一个API。Rails 3 ActiveRecord嵌套关联选择查询
我有一个测验模型,该模型的has_many问题和的has_many结果 问题模型还的has_many答案
我想要的网址/data/quiz/7
所有问题+回答和结果返回测验与ID = 7
这是我目前所拥有的方法。
def quiz
@quiz = Quiz.find(params[:id])
@questions = @quiz.questions.select('id, content') # returns only selected fields
@results = @quiz.results.select('id, content, points_limit') # returns only selected fields
@questions.each do |question|
question['answers'] = question.answers.select('id, content, points') #returns whole object
end
@return = Hash.new
@return['questions'] = @questions
@return['results'] = @results
respond_to do |format|
format.json { render json: @return }
format.xml { render xml: @return }
end
end
一切正常,除了答案返回,包括创建,在,ID,更新,在等等等等,所有我想在查询中选择的领域,如我有充分的答案对象。
为什么.select为@questions和@results而不是相关的@answers?
无论我尝试什么,它似乎都忽略了答案循环的select语句并始终返回完整的对象。
-
在控制台...我知道做同样的事情
question.answers.select('id, content, points')
回报正是我之后。所以这是我把它放入Array/Hash的方式,我猜测,但仍然无法解决。
这一工程,但没有办法,我真的希望它很遗憾。这将所有答案都放在一起,因为我希望每个答案都嵌套在适当的问题中。尽管感谢您的回答。 – markstewie 2012-07-22 19:20:04