[Rails] ActiveRecordの範囲指定に2点ドット(..)と3点ドット(...)を適切に使う
808 ワード
2点ドットの場合
Post.where(id: 1..3)
=> "SELECT "posts".* FROM "posts" WHERE "posts"."id" BETWEEN 1 AND 3"
between句になります。これは1と3の両端を含みます。
3点ドットの場合
Post.where(id: 1...3)
=> "SELECT "posts".* FROM "posts" WHERE "posts"."id" >= 1 AND "posts"."id" < 3)
1を含み3を含まないSQLが生成されます。あら便利。
どう使う?
問題になるのはcreated_atなどの連続値における範囲指定で、2点ドットの両端を含むデータ取得だと思わぬところでダブルカウントしてしまう可能性があります。
離散値を使う時には2点ドット(..)、連続値を使う時には3点ドット(...)で範囲指定をするのが便利ですね。
Author And Source
この問題について([Rails] ActiveRecordの範囲指定に2点ドット(..)と3点ドット(...)を適切に使う), 我々は、より多くの情報をここで見つけました https://qiita.com/sue738/items/f6ab1609fa54487e9b9e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .