我有一個應用程序,可從特定國家/地區檢索用戶列表。Rails:如何以及在哪裏添加此方法
我這樣做的UsersController
:
@fromcanada = User.find(:all, :conditions => { :country => 'canada' })
,然後把它變成一個範圍在User
模型
scope :canada, where(:country => 'Canada').order('created_at DESC')
,但我也希望能夠檢索一個素不相識的人或多個來自國家的人。我發現這種方法應該是從數據庫中檢索隨機用戶的有效方法。
module ActiveRecord
class Base
def self.random
if (c = count) != 0
find(:first, :offset =>rand(c))
end
end
end
end
但是,我有幾個關於如何添加它以及語法如何工作的問題。
我會在哪裏放置該代碼?直接在
User
模型中?語法:所以我不使用我不明白的代碼,你能解釋語法是如何工作的嗎?我沒有得到(
c = count
)。什麼是count
計數?rand(c)
在做什麼?它是否找到第一個從偏移量開始的?如果rand
是一個昂貴的方法(因此需要創建一個更高效的random
方法),爲什麼在這個新的更高效的random
方法中使用昂貴的「rand
」?我該如何在我的
find
方法UsersController
上添加對random
的呼叫?如何將它添加到模型中的範圍?建立在問題3上,有沒有辦法讓兩個或三個隨機用戶?