1

私はレールに非常に慣れていないので、MVC フレームワークと RESTful アーキテクチャの背後にある概念を学び始めています。私にとって灰色の領域であった質問は、後処理データの背後にあるロジックが、モデル、ビュー、またはコントローラーによって最もよく処理される可能性があるのはどこでしょうか? コントローラーに属していることは直感的に理解できますが、何がベスト プラクティスと見なされるかはわかりませんでした。たとえば、リソースの生徒がいて、合計点を合計し、それを合計可能な点数で割って最終成績を表示したい場合、その計算はどこに置くのでしょうか? クラスの平均を計算したい場合はどうすればよいですか? それとも彼らのGPA?

4

2 に答える 2

0

モデルはすべてのビジネス ロジックを処理するため、すべての計算をモデルに入れる必要があります。Controllerそのようなデータを要求するユーザーとビューの間のレイヤーとして、 からメソッドを実行し、Model取得したデータを後でViewsそのデータを表示するために使用される変数に割り当てます。また、sidekiqなどの gem を使用して統計を計算したり、スケジュールされたバックグラウンドの rake ジョブで統計を計算したりすることをお勧めします。

于 2012-10-08T20:16:49.617 に答える
0

私は Fat Model Skinny Controller のマントラに従う傾向があります。計算値は、モデル内のメソッドである必要があります。インスタンス メソッドを使用して個々の生徒の成績を計算し、クラス メソッドを使用してクラス全体の平均を計算する必要があります。

Class Student < ActiveRecord::Base

  POSSIBLE_POINTS = 100

  def grade
     points / POSSIBLE_POINTS
  end

  def self.class_averags
    students = all #or use where to filter results
    total = students.inject(0){ |total, student| total + student.grade }
    total / students.size
  end

end

お役に立てれば。

于 2012-10-08T20:15:07.487 に答える