2012-12-28 1 views
1

나는 사용자가 여전히 적용되기 때문에 현재의 고용 start_dateend_date레일 3 핸들 지속적인 고용 시간

create_table :employments do |t| 
     t.integer :user_id 
     t.integer :company_id 
     t.string :title 
     t.string :department 
     t.string :summary 
     t.date :start_date 
     t.date :end_date 
     t.timestamps 
end 

그것은 과거의 고용을 만들기위한 좋은,하지만이 포함 된 employments 테이블을 짓고 있어요.

사용자가 현재 고용되었음을 표시하려고 할 때 처리하여 사용자가 :end_date을 선택할 필요가 없도록하는 방법. (내가 링크드 인 사용자가 :end_date을 선택 피하기 위해 "나는 현재 여기에서 일하고 있어요"를 클릭 할 수있는 옵션을 제공합니다 알고 있지만, 데이터베이스, 방법이 달성?)

내가 :employments 편집 및 새에 대한 simple_form를 사용합니다. 날짜 필드는 날짜 선택 자입니다.

+0

당신이 사용자가 몇 가지 양식을 가지고있다 "사용자가 그/그녀가 현재 사용되는 표시하려고 할 때 어떻게 처리"말했다 : 여기

은 예입니다? 어쨌든 데이터베이스와 필드만으로는 사용자가 여전히 고용되어 있다는 좋은 지표는': end_date'가'nil '일 때입니다. – mmichael

+0

@mmichael 그래서': end_date'의 입력 필드를 무시하는 폼에 체크 박스를 씁니다. – Firyn

+0

예, 그렇게 할 수 있습니다. 현재'Employment Model'에': end_date'에 대한 유효성 검사기가 없다고 가정하면, 폼에': end_date'의 값을 전달하지 않으면 기본값은'nil'입니다. 다시 말하지만, "현재 근무하고 있습니까?"라는 양식의 확인란을 사용할 수 있습니다. Controller 액션에서 값을'nil'으로 설정하십시오. – mmichael

답변

0

내 머리 꼭대기에서 필드를 nil으로 설정하고 해당 값을 UI에서 "현재 사용"으로 처리하는 것이 어떻습니까?

1

조건부가 아니라면 validates_presence_of는 어떨까요?

Validate presence of field only if another field is blank - Rails

+0

그렇습니다.'nil'은 갈 길이 멀기 때문에 checkbox와 javascript를 사용하여': end_date' 값을 nil로 오버라이드 할 수 있습니다. 하지만 form_field가 년, 월, 일로 날짜를 나누는 것은 다소 추한 일이 될 것입니다. – Firyn

+0

도움을 주셔서 감사합니다. 나는 그 첫 번째부터 규칙적인 대답을 선택할 것입니다. 충분한 담당자가있을 때 돌아와서 투표 할거야. – Firyn

+0

문제 없습니다. 원하는 것을 할 수있는 여러 가지 방법과이를 구현하는 방법에 대한 좋은 정보가 있습니다. 그것은 모두 당신이 그것이 어떻게 작동하길 바라 느냐에 달려 있습니다. 해피 레일링! – Remear