offset(rand(User.count)).first
offsetメソッドとは、特定のレコード位置から情報を取得するメソッド。
モデル.offset(取得開始位置)
と書くことで、(取得開始位置)から情報をとってくることができる。
User.limit(5).offset(30)
上のコードは、30件目以降から5件ユーザーの情報をとってきて。ということになる。
randメソッドとは、疑似乱数を生成してくれるメソッド。 疑似乱数とは、乱数のように見えるが、確定的な計算によって、つまり、乱数っぽく見せてるだけで、決まってるよ、というもの。
rand(5) # 5未満の整数で返す rand(3..8) # rangeで指定された範囲の値を返す。3以上8以下で結果を返す
2つからタイトルの
offset(rand(User.count)).first
が何を言っているのかは、ユーザーの数(User.count)未満でランダムな数字から始まるデータの1つ目を取ってきてちょうだい。ということになる。