Ruby on rails 从数据库进行查询时,如何返回模型父值

Ruby on rails 从数据库进行查询时,如何返回模型父值,ruby-on-rails,json,activerecord,Ruby On Rails,Json,Activerecord,所以我有一个叫做Image的模型,它属于:user。每个用户都有名字和姓氏 我有一个flash应用程序,我正在将一个json对象返回给一组图像 我将在图像控制器上调用的服务看起来像这样 def getimages @images = Image.all render :json => @images end [{"image":{"created_at":"2011-01-22T19:04:30Z","img_path":"assets/img/bowl_93847

所以我有一个叫做Image的模型,它属于:user。每个用户都有名字和姓氏

我有一个flash应用程序,我正在将一个json对象返回给一组图像

我将在图像控制器上调用的服务看起来像这样

def getimages
    @images = Image.all
    render :json => @images

  end
[{"image":{"created_at":"2011-01-22T19:04:30Z","img_path":"assets/img/bowl_93847566_3_0.png","updated_at":"2011-01-22T19:04:30Z","id":9,"user_id":3}}]
我的json看起来像这样

def getimages
    @images = Image.all
    render :json => @images

  end
[{"image":{"created_at":"2011-01-22T19:04:30Z","img_path":"assets/img/bowl_93847566_3_0.png","updated_at":"2011-01-22T19:04:30Z","id":9,"user_id":3}}]
我想做的是在返回的图像对象中包含用户的名字和姓氏

一旦我有了一个图像对象,我就可以执行类似于
image.user.first\u name
的操作,但我不清楚如何返回图像对象数组之类的内容,并将用户包括在内

如果我能让我的图像数组看起来像下面这样,那就太好了

[{"image":{"created_at":"2011-01-22T19:04:30Z","img_path":"assets/img/bowl_93847566_3_0.png","updated_at":"2011-01-22T19:04:30Z","id":9,"user_id":3, "first_name":"Matthew", "last_name":"Wallace"}}]
我想这可能包括添加某种模型方法或一些我不熟悉的东西


实现这一点的最佳实践是什么?

除了@apreading提供的答案外,您还可以覆盖图像的
to_json
方法,并返回包含所需json的字符串

你可以:

render :json => @images.to_json(:include => :users)
请参见(并显示它在阵列上工作)。最后,描述了在json呈现中使用
to_json
作为可选的而不是必需的,这意味着它不会造成任何伤害(我看不到其他方法来传递必需的选项)

也许更干净的json:

render :json => @images.to_json(:include => { :user => { :only => [:first_name, :last_name] } })

你为什么不创建你自己的js.erb视图,里面有你想要的东西呢?这很好用。。。我所做的唯一改变是我需要使用:user和not:users的单一版本,让我更清楚一些。我使用了你发布的最后一个示例,其中我只包括名字和姓氏行。我将其更改为单数,但我阅读的示例将其多元化