渴望加载最后的下属记录

时间:2009-03-13 14:04:48

标签: ruby-on-rails activerecord

假设模型X has_many Ys和模型Y belongs_to X.每个Y都有一个插入数据库的日期。现在,是否有可能为每个X加载所有X和急切加载Y(只有最后一个,因为每个X都有Y的基础)?

2 个答案:

答案 0 :(得分:4)

是,

让我们举个例子

class Song < ActiveRecord::Base
   has_many :votes
end

class Vote < ActiveRecord::Base
  belongs_to :song
end

为歌曲添加新关联:

has_one :last_vote, :class_name => 'Vote', :order => 'created_at DESC'

此新关联将始终返回最近创建的歌曲投票。

急切加载它:

songs = Song.find(:all, :conditions => 'artist_name = "frank"', :include => :last_vote)

答案 1 :(得分:0)

之前的解决方案非常棒!但是,我正在寻找另一个功能:是否有可能在特定日期之前急切加载最后一个从属记录?这是必要的,以便我的用户可以浏览歌曲的投票历史(包括前一天和下一天的链接)。