📌

enumのscopeについて

2022/04/07に公開

enumで定義された特定の項目を取り出したいとき

writer.rb
enum writer_type: { official_writer: 1,  special_writer: 2 }

enumでは上記のようにenumが定義されているとする

official_writerだけを取り出す際、自分はこのように書いていた

writer_controller.rb
def index
  @writer = Writer.where( writer_type: "official_writer")
end

確かにこれでも動くけど、プルリクを出した際にレビュワーにscopeを使うように指摘された

writer_controller.rb
def index
  @writer = Writer.official_writer
end

こちらの方が簡潔でわかりやすい!

参考

https://kossy-web-engineer.hatenablog.com/entry/2020/05/31/113615

Discussion