我正在尝试将 :total_time 设置为 2 个日期时间项目(:start_time 和 :end_time)之间的差异(以秒为单位)。通过执行以下操作,我可以在视图中获得我想要的值
<%= (@result.end_time.minus_with_coercion(@result.start_time)).round %>
但现在我需要在控制器中创建 @result 时使用此值填充 :total_time - 我尝试了以下操作:
def finish
@a_hill = AHill.find(params[:hill_id])
@finish_time = Result.create(:user_id => params[:user_id], :a_hill_id => params[:hill_id], :start_time =>@a_hill.start_time, :end_time=>Time.now, :total_time=>(Time.now.minus_with_coercion(@a_hill.start_time)).round)
if @finish_time.save
redirect_to(:action => "race", :id =>params[:hill_id] , :hill_id =>params[:hill_id])
end
end
或专注于其中的主要部分:
:total_time=>(Time.now.minus_with_coercion(@a_hill.start_time)).round
但我得到了错误
“AhillsController#finish 中的 TypeError - 无法将字符串转换为精确数字”
:total_time 是一个整数 :start_time 和 :end_time 是日期时间
我对 Rails 还很陌生,如果答案很明显,我很抱歉,并在此先感谢。