2013-09-23 2 views
0

total_time을 2 datetime 항목의 차이 (: start_time 및 : end_time) (초)로 설정하려고합니다. 컨트롤러에 @result 생성이 값 TOTAL_TIME - 나는 다음과 같은 시도 : 나는 내가 다음레일즈는 두 datetimes의 차이를 초 단위로 계산하고 정수로 변환합니다.

<%= (@result.end_time.minus_with_coercion(@result.start_time)).round %> 

를 수행하여보기 원하지만 지금은 채울 필요가 값을 얻을 수 있습니다

또는

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 번호 마무리의 형식 오류가 - 정확한 숫자로 문자열을 변환 할 수 없습니다"

: TOTAL_TIME하는 정수입니다 START_TIME과 : END_TIME 내가 대답이 경우 정말 미안 레일에 아주 새로운 해요

날짜 시간입니다 아주 분명하고 미리 감사드립니다.

+0

당신의 경험은 당신이 필요로 아주 명백한 사실 :-) 인 문제는 날짜 시간 개체 시도 "@의 a_hill.start_time.to_datetime"에의 START_TIME을 @a_hill 변환하거나 더 나은 날짜를하기 위해 AHill 객체를 변경하는 것입니다 개체는 start_time 특성에 있습니다. – xlembouras

+0

오류 메시지에서 @ a_hill.start_time은 DateTime 대신 문자열입니다. start_time의 데이터 유형이 무엇인지 확인할 수 있습니까? – membLoper

+0

Brilliant .. 나는 a_hill에서 시작 시간을 가져 왔음을 바보스럽게 잊었다. (결과에서 start_time과 end_time은 datetime 객체이지만 훨씬 더 적절한 모범생 오류를 통해 생각하지는 않았다.) @xlembouras 나는 그것을 작동시키기 위해 .to_datetime을 사용했다. (비록 당신이 제안한 것처럼 datetime 객체를 가지도록 객체를 변경할 것이기 때문에) "정답"포인트를 원한다면 당신의 코멘트를 덧붙인다. –

답변

1

@a_hill의 start_time을 Datetime 객체로 변환하는 것이 좋습니다. @a_hill.start_time.to_datetime 을 시도하거나 AHill 객체를 변경하여 start_time 속성에 datetime 객체를 포함하는 것이 좋습니다.

관련 문제