こんにちは!kossyです!
さて、今回はメソッドの移譲を実現するメソッド、delegateメソッドの使い方を
ブログに残してみたいと思います。
環境
Rails 5.2.2
Ruby 2.5.1
MacOS Mojave
例えば、
・Userクラス(name, email, profile_photo, password )
・Postクラス(title, content, user_id)
があったとして、
User has_many postsの関係とし、
特定のポストのユーザーのプロフィール写真を取得したいとします。
その場合、
@post.user.profile_photo
として値を取得すると思うのですが、
ここでdelegateメソッドを使うと、
@post.profile_photo
で値が取れるようになります。
実装手順
実装はとても簡単です。
class Post belongs_to :user delegate :profile_photo, to: :user end
これで実装は終了です。
めちゃくちゃ簡単なのでぜひ試してみてください。