お世話になっております。
現在railsでアプリを作っているのですが、Controllerに下記のような処理があります。railsのような MVCフレームワークではcontrollerをなるべくスリムにして、モデルやヘルパーにビジネスロジックを詰め込んだほうがいいという話を聞いたのですが、具体的な実現方法がわかりません。
自分の所感としては、モデルに入れる処理は検索系の処理や、DBに関わるビジネスロジックだと思っています。しかし、日付のフォーマットや下記のコードのように、データベースのある値を集計して、合計を出す処理(~~_amountの部分です。)などはどこに書けばいいのでしょうか??
ruby
def index @wdays = %w[日 月 火 水 木 金 土] if params[:year_month] inputs = params[:year_month][0].split('-').map(&:to_i) @start_date = Date.new(inputs[0], inputs[1], 1) @end_date = Date.new(inputs[0], inputs[1], -1) @month = inputs[1] else day = Date.today @start_date = Date.new(day.year, day.month, 1) @end_date = Date.new(day.year, day.month, -1) @month = day.month end @data = [] restraint_amount = 0 work_amount = 0 break_amount = 0 (Date.parse(@start_date.to_s)..Date.parse(@end_date.to_s)).each do |date| @date = date record = current_user.attendances.where(work_in: date.all_day).first if record restraint_amount += record.restraint_time work_amount += record.work_time break_amount += record.break_time end record ||= current_user.attendances.build @data.append record end @restraint_data = time_to_view_data(restraint_amount) @work_data = time_to_view_data(work_amount) @break_data = time_to_view_data(break_amount) end # ruboc
まだ回答がついていません
会員登録して回答してみよう