前提・実現したいこと
1日の食事の『目標値』から『実際に食べた数値』を引いた『残りの数値』を算出したい
具体的に
fooddiaryテーブルにて日々の食べた食事を管理しています。
またidealweightテーブルにてそのユーザーが1日にとっていい目標数値を管理しています。
この目標数値と日々食べた食事の数値をfooddiaries/index画面にて反映させているのですが
合わせて目標数値から食べた食事の数値を引いた『残り数値』も同時に反映させたいです。
どなたか残りの数値を出すための正しい式をお教えいただけますと幸いです。
発生している問題・エラーメッセージ
該当のソースコード
ruby
1 2##fooddiaries/index 3 4<h3>食事記録</h3> 5<%= form_tag(fooddiaries_path, :method => "get") do %> 6 <%= date_field_tag :search %> 7 <%= submit_tag "Search" ,:created_at => nil ,class: "" %> 8<% end %> 9<tr> 10 <th>foodname</th> 11 <th>gram</th> 12 <th>kcal</th> 13 <th>protein</th> 14 <th>fat</th> 15 <th>carbo</th> 16</tr><br> 17 18 <h4>■朝食</h4> 19 <%= render @fooddiary_morning %> 20 <h4>■昼食</h4> 21 <%= render @fooddiary_lunch %> 22 <h4>■夕食</h4> 23 <%= render @fooddiary_dinner %> 24 <h4>■間食</h4> 25 <%= render @fooddiary_snack %> 26 27 <h4>■合計</h4>#1日あたりの項目別合計数値 28 <%= @fooddiary_sum_kcal %>kcal 29 <%= @fooddiary_sum_protein %>g 30 <%= @fooddiary_sum_fat %>g 31 <%= @fooddiary_sum_carbo %>g 32 33 <h4>■目標</h4>#idealweightテーブルにて管理しているユーザーの目標数値 34 <%= current_user.idealweight.kcalintake %>kcal 35 <%= current_user.idealweight.intakeproteingram %>g 36 <%= current_user.idealweight.intakefatgram %>g 37 <%= current_user.idealweight.intakecarbogram %>g 38 39 <h4>■残り</h4> #errorが起こっている箇所 40 <%= current_user.idealweight.kcalintake - @fooddiary_sum_kcal %>kcal 41 <%= current_user.idealweight.intakeproteingram - @fooddiary_sum_protein %>g 42 <%= current_user.idealweight.intakefatgram - @fooddiary_sum_fat %>g 43 <%= current_user.idealweight.intakecarbogram - @fooddiary_sum_carbo %>g 44 45 <%= link_to "食事を追加する", "/fooddiaries/new", class: "" %>
ruby
1class FooddiariesController < ApplicationController 2##fooddiaries_controller 3 4 def index 5 @fooddiary_morning = params[:search].present? ? current_user.fooddiaries.where('created_at LIKE(?) and timing = ?', "%#{params[:search]}%", '朝食'): [] 6 @fooddiary_lunch = params[:search].present? ? current_user.fooddiaries.where('created_at LIKE(?) and timing = ?', "%#{params[:search]}%", '昼食'): [] 7 @fooddiary_dinner = params[:search].present? ? current_user.fooddiaries.where('created_at LIKE(?) and timing = ?', "%#{params[:search]}%", '夕食'): [] 8 @fooddiary_snack = params[:search].present? ? current_user.fooddiaries.where('created_at LIKE(?) and timing = ?', "%#{params[:search]}%", '間食'): [] 9 @fooddiaries = params[:search].present? ? current_user.fooddiaries.where('created_at LIKE(?)', "%#{params[:search]}%"): [] 10 @fooddiary_sum_kcal = @fooddiaries.sum(:kcal) 11 @fooddiary_sum_protein = @fooddiaries.sum(:protein) 12 @fooddiary_sum_fat = @fooddiaries.sum(:fat) 13 @fooddiary_sum_carbo = @fooddiaries.sum(:carbo) 14 end 15
試したこと
ユーザーの1日に摂取していい数値(<%= current_user.idealweight.kcalintake %>)から
1日に摂取した合計数値(<%= @fooddiary_sum_kcal %>)を引いた計算
ruby
1<%= current_user.idealweight.kcalintake - @fooddiary_sum_kcal %>kcal
を試してみましたが上記にキャプチャーしたようにTypeerrorが出てしまいます。
恐れ入りますが正しく反映される式をお教えいただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/05 10:38