0

我正在开发的这个 Rails 应用程序具有以下模型:

专辑 has_many :tracks

跟踪belongs_to :album

该应用程序的一部分允许我通过单击链接来播放整个专辑。这会触发一个 ajax 请求,如下所示:

  $.ajax({
    url: '/albums/' + _this.parent().data("id") + '.json',
    data: { id : _this.parent().data("id") },
    success: function(json) {
      //more code here

    }
  });

我的控制器有这个:

 def show
  @album = Album.find(params[:id])
  render json: @album
 end

这一切都有效!

我的问题是,如何在一个 ajax 请求中获取专辑和属于该专辑的曲目?

我试过了:

 render json: @album.tracks

这给了我所有的曲目,但不是专辑。

因此,如果有一种方法可以通过一个请求同时获得两者,请指出正确的方向。

谢谢。

4

1 回答 1

2

Perhaps if you do this:

render json: {'album' => @album, 'tracks' => @album.tracks}

Then in your ajax code:

success: function(json) {
  //more code here
  json.album contains album info
  json.tracks contains tracks info

}

Edit This is a cleaner approach in one line:

render json: @album.to_json(:include =>  :tracks)
于 2013-10-06T02:52:22.883 回答