Rails显示方法不返回关联对象

时间:2012-02-06 12:46:19

标签: ruby-on-rails-3 json rest

我有一个使用:through方法引用另一个对象的对象。

当我执行“show”方法时,将返回对象详细信息,但不返回其关联对象。我已经尝试在查找中包含对象:

@recipe = Recipe.includes(:quantities).find(params[:id])

但无济于事。

当我调试代码并执行

@recipes.quantities

然后我返回了正确的集合,但默认情况下不会在json中返回该集合。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

show方法中执行类似的操作

def show
  @recipe = Recipe.includes(:quantities).find(params[:id])

   respond_to do |format|
     format.html
     format.json { render json: @recipe.as_json(:include => :quantities)}
   end
 end

这实际上隐藏在Rails源代码中,但as_json根据this question上的答案使用更有意义。

文档:ActiveModel::Serializers::JSON