2011-08-17 2 views
5

정확한 용어가 무엇인지 모르겠지만 양식에서 입력 (simple_form gem을 사용하는 것이 좋습니다) : 최대, 둘 다 사용 텍스트 필드 및 선택 상자. 사용자는 텍스트 상자에 숫자를 입력 한 다음 시간, 일 또는 월의 드롭 다운 상자에서 선택합니다. 그래서 21 일, 3 개월, 3 시간 등. 양식을 제출했을 때 나는 그것을 일로 변환하고 그것을 데이터베이스에 저장합니다. simple_form에서 입력 유형을 변경하는 방법을 알고 있지만 하나의 변수에 대해 두 개의 입력을 가질 수 있습니까? 보기에 그런simple_form 입력이 여러 개의 필드로 이루어진 경우

attr_accessor :thing, :another_thing, :and_another_thing 

, 도우미 form_for '내부', 당신은 예를 들어 작성할 수

가 먼저 사용자 모델에 접근을 정의

+0

을 before_save와 같은 콜백에서'attr_accessor's를 사용하고 나중에 프로세스 로직을 사용하십시오. – socjopata

+0

attr_accessor를 사용하는 방법을 자세히 설명해 주시겠습니까? – Alexei

답변

4

물론이 :) 여기 내 생각이다 :

<%= form.input :thing, :as => :boolean %> 
<%= form.input :another_thing, :as => :text %> 

... 원하는대로. (참고 : 여기 formtastic을 사용하고 당신이 formtastic 보석을 사용하지 않는 경우 레일의 방법을 사용하는 것이 좋습니다..)

마지막으로

, 당신은 당신의 사용자 모델 콜백을 정의 : 당신이 할 수 추측

before_create :build_my_fancy_record 

def build_my_fancy_record 
    self.storage_field = "#{thing} #{another_thing}" 
end 
+0

매력처럼 작동합니다. 정말 고마워요! – Alexei