当前位置:  开发笔记 > 编程语言 > 正文

渴望加载最后一个下属记录

如何解决《渴望加载最后一个下属记录》经验,为你挑选了1个好方法。

假设模型X有多个Y,并且模型Y属于X。每个Y都有一个插入数据库的日期。现在,是否可以加载所有X并渴望为每个X加载最后一个Y(仅是最后一个,因为每个X具有Ys的炫耀效果)?



1> Tilendor..:

是,

让我们举个例子

class Song < ActiveRecord::Base
   has_many :votes
end

class Vote < ActiveRecord::Base
  belongs_to :song
end

向歌曲添加新的关联

# for Rails version <4:
has_one :last_vote, :class_name => 'Vote', :order => 'created_at DESC'

# for Rails version 4+
has_one :last_vote, -> { order(created_at: :desc) }, class_name: 'Vote'

这个新的协会将始终返回最新创建的歌曲投票。

渴望加载

# for Rails version <3:
songs = Song.find(:all, :conditions => 'artist_name = "frank"', :include => :last_vote)

# for Rails version 3+:
songs = Song.includes(:last_vote).where(artist_name: 'frank')

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有