: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にかなり慣れていないので、答えが非常に明白なものである場合は申し訳ありません。事前に感謝します。