ゆるふわ技術日誌

エンジニア見習いの悪戦苦闘日記

ActiveRecord周り 俺的Tips #177

今日やったこと

ActiveRecordこねくり回してました

データサイエンティスト(笑)

いや違うけど。ActiveRecordのいろいろをメモ的に書く。ちなみに当方Rails歴数週間。

whereINを使う

User.where(post_id: [1,2,3])

こんな感じでidが1か2か3のポストを持っているユーザーを取ってこれる。

他の条件と組み合わせたいときは

User.where("post_id in (?) and sex = ?", [1, 2, 3], "male")

的な。配列じゃなくてrangeを渡すこともできるよ。

Rails consoleで何か実行した時にSQLを表示しない

ActiveRecord::Base.logger = nil

console閉じれば元に戻るのでご安心を。

ランダムにレコードを一個取る

なんか試打ちしたい時とかに使える。

User.take

という感じ。

Rails consoleではtab補完が効く

Userモデルがpost_idとか持っているときにUser.take.posとかまで打ってタブ打てば補完が効く。

結構重いのであまり実用性はないかも。

レコードが存在すればtrueそうでなかったらfalse

普通にif文とかで書いてもいいけど

User.where(sex: "male").present?

いいねぇ。

日付操作

ActiveRecordってよりActiveSupportというライブラリの機能らしい。

now = Time.now
tomorrow = now + 1.day

こんな感じのことができる。dayにはdaysっていうエイリアスが張られているそうで2.daysとか言う感じにも書ける。

アクティブサポート(activesupport) - - Railsドキュメント

雑談

なんかActiveRecordの話じゃなくなってるけどまぁいいか。Ruby普通にたのしいです。