所以我有一個Rails應用程序,它有三種基本型號:Entry
,User
和Vote
。我需要一個輔助方法,它會給我一個隨機職位用戶投票:在Rails中獲得一個隨機的,未登錄的帖子
def next_entry
Entry.where(:receiving_challenge_id => current_voting_challenge.id).offset(rand(Entry.where(receiving_challenge_id: current_voting_challenge.id).count)).first
end
這個工作,它會每次都搶隨機職位。
投票屬於用戶和條目,它們通過數據庫中的ID關聯。
但我不想給用戶一個他們投票的帖子。
我該如何做到這一點?
是不是樣本被認爲是非常糟糕的Rails練習? – alt
是的,但在這裏您實際上是從一個ID數組中取樣而不是從一個ActiveRecord :: Relation對象中取樣!無論哪種方式,在你的例子中,你將不得不使用樣本方法,因爲你不知道所有條目中的所有ID,它不像在一些例子中,你可以選擇10以下的任何數字,並採用ID ,你必須檢索所有的id - >必須檢索所有的記錄。 – Zippie