RailsのActiveRecordsで、
Hogeテーブルっていうのがあって
id | type | name |
---|---|---|
1 | 1 | aaa |
2 | 6 | bbb |
3 | 9 | pero |
4 | 12 | moga |
5 | 40 | ccc |
みたいなデータが入っていたとする。
見つからないときにraiseしたかったので find_by!
を使いたいというときに
hoge = Hoge.find_by!(type: 1..10, name: 'pero')
ってやると、
期待してるデータがあるはず(id: 3)なのに見つからなくてraiseしてしまう。
Hoge.find_by(type: 1..10)
これがnilを返してしまうためっぽい。
Arrayならいける
RangeをArrayにすれば解決
hoge = Hoge.find_by!(type: [*1..10], name: 'pero')
期待してるレコードを取得できた。