我有一个非常简单的有效记录查询
def show
user = User.find(params[:id])
render :text => user.to_json(:include=>:classes)
end
但是,在我的Class
模型中,我有一个方法
def self.get_avg_prev_score(id)
return Scores.calc_score(id)
end
我试图在我的JSON哈希中返回avg_prev_score
,但看到它不是数据库中的列,我不知道该怎么做。
答案 0 :(得分:1)
如果您尝试返回您所包含的每个课程的平均分数,您可以这样做:
def show
@user = User.find(params[:id])
render :text => JSON::parse(@user.to_json(:include=>:classes)).merge("avg_prev_scores" => @user.get_avg_prev_scores_for_classes).to_json
end
然后让你的另一个方法返回与class_id
:
# User.rb model
def get_avg_prev_scores_for_classes
average_scores = []
self.classes.each {|c| average_scores << [c.id, Scores.calc_score(c.id)]}
return Hash[*average_scores.flatten]
end