0

Rails 3.1 でホテルのようなアプリを書いていますが、Rails は初めてです。アプリのサービス層で通常管理されているものをどのように記述するかについて、アドバイスが必要です。

アプリには価格を計算するためのサービスが必要であり、このメソッドは複数のコントローラーで使用できる必要があります。今まで私はこれらすべてのものをコントローラに入れていましたが、今はそこから取り出さなければならず、実際にはどこでどのように行うのかわかりません.

ヘルパーを作成してコントローラーに含めることを考えましたが、ヘルパーはビュー内のものをレンダリングするのに役立つだけで、ビジネスレイヤー関連のタスクを台無しにするべきではないため、このソリューションは嫌いです。

これをどのようにコーディングしますか?

4

2 に答える 2

1

コントローラーでこれを行うことさえしません。可能であれば、ロジックをモデルにプッシュします。複数のモデルで必要な場合は、lib フォルダーに mixin を作成し、各モデルに含めます。

于 2012-07-20T13:10:34.280 に答える
1

という名前のフォルダを作成できるかもしれませんservices

/app
  /controllers
  /services
    calculation_service.rb

次に、次のようにコントローラーで使用します。

def show
  @model = Model.find(params[:id])
  @total = CalculationService.calculate_sum(@model.price, @model.subtotal)
end
于 2012-07-20T12:40:48.413 に答える