【Ruby on Rails】テーブルのレコード数を取得する - Model

More than 3 years have passed since last update.

Railsでテーブルのレコード数を取得したいとなった場合の話。

例えば、以下のようなUser Modelがあったとして

class User < ActiveRecord::Base

end

以下のようにcountメソッドを使えば、レコード数が取得できる。

User.count

SQL的には、以下のようなことが多分行われている、はず!

SELECT count(*) AS count_all FROM users

んで、やりたかったことはテーブルからランダムに1レコード取得したいみたいなこと。

その時に、レコード数の範囲で乱数を生成したかったので、countメソッドを使った。

User.find_by_id(rand(User.count) + 1) 

以下のページでも、色々書かれているので参考程度に。


【Rails】sizeとcountとlengthについて

なんかもっといい方法ありそうな気もするけど、とりあえず動いてる!