RailsのActiveRecordで、where条件の大小比較をRangeの書式で書けてとても便利なんだけど、

User.where(id: ..current_user.id) みたいなやつね。

select * from users where id <= :id

...current_user.id が < :id
current_user.id.. が >= :id

ここまでは良い。素晴らしい。

でもどういうわけか、

current_user.id... が >= :id

になるんだよ。why?

User.where(User.arel_table[:id].gt(urrent_user.id)) なんて書きたくないんだヨォ……。


(1...3).to_a
# => [1,2]
(1..3).to_a
# => [1, 2, 3]
っていうのを考えると一貫してるんだよなぁ

フォロー

@masarakki なるほど……これは難しい……

以下と以上が対応するけど未満に対応する単語が存在しないのと根源は似ているんだろうか
人間の需要の問題・・・

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。