あまり知られてないRuby/Railsの便利メソッド5つ(翻訳)

概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: 5 Ruby on Rails Tips You Probably Don’t Know 原文公開日: 2017/11/15 著者: Igor Petrov あまり知られてないRuby/Railsの便利メソッド5つ(翻訳) 私がRuby on Railsで開発するようになってかれこれ数年が経過しましたが、Ruby世界で何か新しい発見があるたびに感動があります。それこそがRubyであり、Rubyは開発者を幸せにするのが目的です(他にもいろいろ法則はありますが、とりわけ)。Rubyを使っていると、毎年何か新しいものを見つけるたびにそのことを感じます。 本記事では最近私が発見したものをいろいろご紹介いたします。これらはめったに使われていませんし、使わなければいけないものでもありません。ほとんどは「シンタックスシュガー」ですが、いずれにしろコードがとても明確になります。一部は最近のRubyやRailsの新機能です。 1. Hash#dig Rails開発を7年続けていますが、つい最近初めてこれを見かけたときに当然「これは何?」と思いました。私がRubyで開発を始めた頃は1.8だったのですが、この機能は2.3で導入されました。 次のようなコードを何回書いたか覚えていますか。 … if params[:user] && params[:user][:address] && params[:user][:address][:somewhere_deep] digはsafe navigation演算子(ぼっち演算子)&.の一種ですが、Hashオブジェクトで使えます。これを使えば上のコードは次のように書き直せます。 … if params.dig(:user, :address, :somewhere_deep) 2. Object#presence_in これは、Query Objects in Ruby on Railsというお気に入りの記事を書いたときに見つけました。存在チェックの結果(論理値)が欲しいのではなく、チェックされたオブジェクトそのものが欲しい場合に、条件(多くは三項演算子)を1つのメソッドで書けます。次のコードをご覧ください。 sort_options = [:by_date, :by_title, :by_author] … sort … Continue reading あまり知られてないRuby/Railsの便利メソッド5つ(翻訳)