たくさんのオブジェクトがあり、それらが発生した日ごとにグループ化しました。
scope :grouped_by_user_with_total_time, lambda {
group(:user_id, :day).select('user_id, SUM(time_worked) AS time_total, day, editable, approvable, accepted, comments')
}
編集可能、承認可能、承認済みを変更するメソッドもいくつかあります。しかし、グループ化されたので、グループ化されたオブジェクトを承認しようとすると、このエラーが発生します。
ID のない TimeLog が見つかりませんでした
私のapprove
方法:
def approve
@time_logs = []
t = TimeLog.find(params[:time_logs])
if t.instance_of?(Array)
@time_logs = t
else
@time_logs << t
end
end
グループ化されたすべての時間ログでメソッドが機能するようにするには、何を変更する必要がありますか?
<% @time_logss.each do |timelog| %>
<% if timelog.user_id != current_user.id %>
<tr>
<!--<td><%# check_box_tag 'accept' %></td>-->
<td><%= timelog.id_name %></td>
<td><%= timelog.day.strftime("%B %d, %Y") %></td>
<td><%= timelog.time_total %></td>
<td><%= timelog.state %></td>
<% if timelog.state == "Submitted" %>
<td><%= link_to "Approve", approve_time_sheets_path(time_sheets: timelog), method: :put %></td>