Rails在范围内呈现相关模型

时间:2017-01-29 23:12:56

标签: ruby-on-rails

我在从服务器/ api呈现json响应时尝试在作用域内加载相关对象。

ARGF

基本上,我只想返回标记为render :json => @feed.to_json({ :include => { :feed_tracks => { :methods => :current_feed_tracks, :include => :track } } }) 的{​​{1}}。我在feed_tracks模型上有一个名为feed_tracks的范围:

current

current有很多Feed轨道,每个Feed轨道都有一个与之关联的轨道。

我想只返回标记为当前的Feed轨道并拉入相关的轨道。

上面的哈希我已经返回了所有的Feed轨道,甚至是那些标记为非当前的轨道。

我正在寻找一个看起来像这样的回复:

  scope :current, -> { where(current: true) }

3 个答案:

答案 0 :(得分:0)

尝试使用以下代码:

feed_tracks.current

答案 1 :(得分:0)

试试@ feed.feed_tracks.current.includes(:track).map(&:track)

答案 2 :(得分:0)

答案是将其包含在内,就像它是Feed的属性一样

render :json => @feed.to_json({
  :include => {
    :current_feed_tracks => {
      :include => :track
    }
  }
})