1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ActiveRecordのNullリレーションが便利そう

Posted at

はじめに

Railsガイドを読み返していたら便利そうなものを見つけたので備忘録代わりに残しておきます。

Nullリレーション

noneメソッドは、チェーン (chain) 可能なリレーションを返します (レコードは返しません)。このメソッドから返されたリレーションにどのような条件をチェーンさせても、常に空のリレーションが生成されます。これは、メソッドまたはスコープへのチェーン可能な応答が必要で、しかも結果を一切返したくない場合に便利です。

irb(main):001:0> User.none
=> []
irb(main):002:0> User.none.class
=> User::ActiveRecord_Relation

こんな感じで、空のリレーション(Nullリレーション)を返してくれる。

irb(main):003:0> User.none.limit(1)
=> []

リレーションを期待しているコードに対しても正常に応答するので、より保守性の高いコードが書けそう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?