假设模型X has_many Ys和模型Y belongs_to X.每个Y都有一个插入数据库的日期。现在,是否有可能为每个X加载所有X和急切加载Y(只有最后一个,因为每个X都有Y的基础)?
答案 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)
之前的解决方案非常棒!但是,我正在寻找另一个功能:是否有可能在特定日期之前急切加载最后一个从属记录?这是必要的,以便我的用户可以浏览歌曲的投票历史(包括前一天和下一天的链接)。