Ruby 2 と Rails 4 を実行しています。
各食事のカロリーと主要栄養素を追跡できるアプリを作成していますが、食事インデックスには、これまでに入力したすべての食事ではなく、各ユーザーが今日入力したもののみが表示されるようにしたいと考えています。
私は現在、毎日入力されたものだけを表示していますが、下部の合計は、今日の合計だけでなく、これまでに入力されたすべての食事です. 変数.created_at.to_date == Date.current
に on を追加できません。@meals
それはスローしますundefined method 'created_at' for 1500:Fixnum
各ユーザーには、特定の日に残っているカロリーなどを計算する BMR があります。
MealsController のインデックス ビュー:
<table>
<thead>
<tr>
<th>Name</th>
<th>Calories</th>
<th>Protein</th>
<th>Carbs</th>
<th>Fats</th>
</tr>
</thead>
<tbody>
<% @meals.each do |meal| %>
<tr class= "value">
<% if meal.created_at.to_date == Date.current %>
<td><%= link_to meal.name, edit_meal_path(meal) %></td>
<td><%= meal.calories %></td>
<td><%= meal.protein %></td>
<td><%= meal.carbohydrates %></td>
<td><%= meal.fats %></td>
<% end %>
</tr>
<% end %>
<tr>
<td class="meal-total">Total:</td>
<td class="meal-total"><%= @meals.sum(:calories) %></td>
<td class="meal-total"><%= @meals.sum(:protein) %></td>
<td class="meal-total"><%= @meals.sum(:carbohydrates) %></td>
<td class="meal-total"><%= @meals.sum(:fats) %></td>
</tr>
<% unless current_user.bmr.nil? %>
<tr class="remaining">
<td class="meal-remaining">Remaining:</td>
<td class="meal-remaining"><%= current_user.bmr - @meals.sum(:calories) %></td>
<td class="meal-remaining"><%= (current_user.bmr*0.4/4).to_i - @meals.sum(:protein) %></td>
<td class="meal-remaining"><%= (current_user.bmr*0.4/4).to_i - @meals.sum(:carbohydrates) %></td>
<td class="meal-remaining"><%= (current_user.bmr*0.2/9).to_i - @meals.sum(:fats) %></td>
</tr>
<% end %>
</tbody>
</table>
私の食事コントローラー:
class MealsController < ApplicationController
before_action :set_meal, only: [:edit, :update, :destroy]
before_action :authenticate_user!, except: :index
def index
@meals = current_user.meals if user_signed_in?
end
.
.
.
.
end
前もって感謝します!