為你的 Active Record 做出多采多姿的 find
Jamis Buck 提出了一個好範例
教導我們如何簡單的製作出一個可以隨機取出 entry 的 Active Record
有了這個範例,其實我們可以依照您的需求,特別訂做出多采多姿的find~~~
教導我們如何簡單的製作出一個可以隨機取出 entry 的 Active Record
class Thing < ActiveRecord::Base之後你就可以這樣使用
def self.find(*args)
if args.first.to_s == "random"
ids = connection.select_all("SELECT id FROM things")
super(ids[rand(ids.length)]["id"].to_i)
else
super
end
end
end
Thing.find('random')他就會隨機取出任一個 entry
有了這個範例,其實我們可以依照您的需求,特別訂做出多采多姿的find~~~
1 則留言:
怪怪的,資料庫有一千萬筆資料這樣不就要拉一千萬筆id出來? @@
取得count然後再order by id, offset給個不大於count的亂數值
這樣會不會好點?
張貼留言