以下の内容はhttps://kamatimaru.hatenablog.com/entry/2025/11/03/230854より取得しました。


Rails開発最初の1ヶ月で使ったRubyの配列メソッド

Rubyは高機能な配列関数が多くてどこまで覚えるか悩ましいですが、とりあえず1ヶ月Railsで開発して使ったものは今後もよく使うだろうということでメモしておきます。

map

配列の各要素に対して何らかの処理をした結果の新しい配列がほしい場合に使うメソッドです。 docs.ruby-lang.org

例えば、以下のようにTagオブジェクトのリストからnameフィールドのリストを取得したい場合などに使えます。

class Tag
  attr_reader :id, :name

  def initialize(id, name)
    @id = id
    @name = name
  end
end

tags = [Tag.new(1, "タグ1"), Tag.new(2, "タグ2")]
puts tags.map(&:name).join(", ") # タグ1, タグ2

include?

配列に要素が含まれるかを判定するメソッドです。

docs.ruby-lang.org

例えば画面にチェックボックスを表示する際に、チェック済みのチェックボックスcheckedの状態で表示したい場合などに使えます。

class CheckBox
  attr_accessor :checked
  attr_reader :id, :name

  def initialize(id, name, checked)
    @id = id
    @name = name
    @checked = checked
  end

  def display
    if @checked
      puts "[x] #{@name}"
    else
      puts "[ ] #{@name}"
    end
  end
end

check_boxes = [
  CheckBox.new(1, "インド", false),
  CheckBox.new(2, "ネパール", false),
  CheckBox.new(3, "スリランカ", false)
]

checked_ids = [1, 3]

check_boxes.each do |check_box|
  check_box.checked = true if checked_ids.include?(check_box.id)
end

check_boxes.each(&:display)

実行結果

$ ruby index.rb
[x] インド
[] ネパール
[x] スリランカ

Railsではhas_manyの関連先のidリストをauthor.book_idsのように取得できるので、相性がいいです。

railsguides.jp

selectreject

selectは配列の要素を評価してtrueのものだけにフィルタした新しい配列を返します。

docs.ruby-lang.org

ids = ["1", "", "3"]
pp ids.select { |id| !id.empty? } # ["1", "3"]

reject はその逆です。

docs.ruby-lang.org

ids = ["1", "", "3"]
pp ids.reject { |id| id.empty? } # ["1", "3"]

リクエストパラメータを配列で受け取った時のサニタイズ処理などに使えます。

Railsでは独自拡張のblank?present?が合わせて使えます。

railsdoc.com




以上の内容はhttps://kamatimaru.hatenablog.com/entry/2025/11/03/230854より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14