假设Rails应用程序有以下型号的歌曲,播放,radio_station: 歌曲的has_many扮演 发挥的has_many radio_stations radio_station具有属性“CALL_SIGN”如何创建在相关模型运行的取景条件
我想创建一个查找歌曲,将返回我在哪里,最后播放(歌曲)由“WKRP”
的电台播放的所有歌曲,我可以做
发现= [] 歌。找到(:所有,:包括=> [{: plays => [:radio_station]}])。每个do | song | 发现< <歌曲如果song.plays.last.radio_station.call_sign ==“WKRP” 结束
但是这将意味着所有的歌曲必须从DB首先被拉低,并通过...这将得到循环缓慢的歌曲数量和播放时间。
我怎样才能把它放到一个查找条件?
好像这是一件应该是可行的 - 但我不知道我是怎么和我不是一个真正的SQL大师...
然后..会喜欢它挤入一个名为范围,所以我可以把它想:
Song.find_all_last_played_at(“WKRP”)
谢谢 - 我将如何做你最后的建议?最新的play_id的缓存?这是否意味着它不会保存到数据库中,而是在每条记录中都可用? – Streamline 2009-01-17 08:32:10