Gem name_of_personを導入して、名前を表示する方法

✏️️ 2019/09/01 👍️2019/09/06 🔗

name_of_personを利用するとRailsアプリケーションで名前の扱いが簡単になります。

以下のようなメソッドを利用できるようになります。

person.name.full        # => "David Heinemeier Hansson"
person.name.first       # => "David"
person.name.last        # => "Heinemeier Hansson"
person.name.initials    # => "DHH"
person.name.familiar    # => "David H."
person.name.abbreviated # => "D. Heinemeier Hansson"
person.name.sorted      # => "Heinemeier Hansson, David"
person.name.mentionable # => "davidh"
person.name.possessive  # => "David Heinemeier Hansson's"

引用: name_of_person

インストール

# Gemfile
gem 'name_of_person'
bundle isntall

設定

名前を扱いたいモデルにnameカラムとfirst_nameカラムとlast_nameカラムが必要です。

bin/rails g migration AddFirstNameAndLastNameToUsers first_name last_name
bin/rails db:migrate

User.rbにhas_person_nameメソッドを追加します。また、first_nameカラムとlast_nameカラムにValidationを追加します。

#  first_name      :string
#  last_name       :string
#  name            :string
class User < ApplicationRecord
  has_person_name

  validates :first_name, presence: true
  validates :last_name, presence: true
end

確認

nameカラムに名前を記入するとname_of_personが自動的にfirst_namelast_nameに分離して保存してくれます。

Person.create!(name: "David Heinemeier Hansson")

以上で Gem name_of_personを導入して、名前を表示する方法 は完了です。

参考

Akito
日本のスタートアップで主にRuby on Railsを使ってプロダクト開発をしています。