🚀
RailsにおけるServiceとhelperについて
はじめに
Railsでは、Serviceオブジェクトとhelpersは、異なる役割を果たすコンポーネントです。
Serviceオブジェクト
ビジネスロジックを書く時に、モデルやコントローラから分離するのに役立ちます。
特に、ロジックが複雑でまたは再利用される可能性がある時にいいみたいです。
コントローラーやモデルにロジックが増えると、コードが複雑になるので、
そのためにServiceオブジェクトを使います。
そして一つの具体的な機能や責務に焦点を当てて、コードが簡潔でテストしやすくなります。
# app/services/user_registration_service.rb
class UserRegistrationService
def initialize(user_params)
@user_params = user_params
end
def register_user
# ユーザー登録ロジック
end
end
ヘルパーメソッド:
viewのための補助機能で、viewが複雑になりすぎず、コードが再利用できます。
ビューで表示やフォーマットに関する機能を提供します。
module ApplicationHelper
def format_date(date)
date.strftime("%Y-%m-%d")
end
end
最後に
両者の使い道です。
1.シンプルなビュー関連の機能はヘルパーメソッドで提供。
2.ビジネスロジックが複雑で、または再利用可能な場合は、Serviceオブジェクトを使用。
ヘルパーメソッドは主にビューで使用され、
Serviceオブジェクトはモデルやコントローラから呼び出されることが一般的です。
これらのルールは厳格ではなく、プロジェクトの要件によって異なります。
資料
Discussion