duration
02:00 또는 19:20 (시 및 분)과 같이 시간 범위를 삽입하려는 데이터베이스 테이블에 열 유형이 time .시간 구성원에 문자열 추가 및 데이터베이스에 저장
=f.select :durationhours, options_for_select((0..23).to_a)
=f.select :durationminutes, options_for_select((0..59).to_a)
양식이 form_for 생성하고, 내 데이터베이스의 모든 durationminutes 또는 durationhours 그래서 '이없는 : 사용자는 두 개의 드롭 다운 목록, 시간에 대한 분 하나 하나에 양식을 본다 내 모델에서 validates_acceptance_of를 사용합니다. 폼이 나는 함께 시간과 분을 넣어 데이터베이스로 저장하는 것을 시도하고, 그러나 이것은 (만 롤백이 터미널에서 언급 한) 모든 오류를 표시하지 않고, 실패 제출
attr_accessible :durationhours, :durationminutes #not sure this line is necessary
validates_acceptance_of :durationhours, :durationminutes
. 내가 수동으로 시간을 설정할 경우,
@record.save
잘 작동 위의 라인없이
@record.duration = params[:record][:durationhours].to_s.rjust(2, "0") + ":" + params[:record][:durationminutes].to_s.rjust(2, "0")
# but I even tried this, and it doesn't work:
@record.duration = "13:30"
: 내가 뭘 원하는 같은 것입니다. 이 저장이 실행 된 후 나는 @record.errors.inspect
으로지고있어 오류입니다 :
#<ActiveModel::Errors:0x10ba5be08 @messages=#<OrderedHash {:durationhours=>["must be accepted"],
:durationminutes=>["must be accepted"]}>, @base=#<Record id: nil, details: "",
happened: "2013-04-11 02:19:10", duration: "2000-01-01 12:12:00", activity_id: 17,
created_at: nil, updated_at: nil, price: nil>>
그러나'validates_acceptance_of'가 없으면 form.for가 테이블 열을 기대하는 시간과 분 드롭 다운을 추가 할 수 없었습니다. 어떻게 그렇게 할 것입니까? – networkprofile
'attr_accessor : durationhours, : durationminutes' ('attr_accessible'과 혼동해서는 안됩니다.) 그러면 해당 속성에 대한 클래스의 인스턴스에 getter와 setter가 생성됩니다 –
'attr_accessible' 지시어도 유지해야합니다. 'accessor'는 getters와 setter를 생성하고,'accessible'은 레일스에 대량 할당을 할 수 있다고 알려줍니다. –