두 개의 양식 입력을 하나의 데이터베이스 입력 매개 변수로 결합하려고합니다. 내 양식에서 나는 시간 (6-22) 및 분 (0-55)에 대한 드롭 다운을 가지고 있고 db에서 start_hour * 60 + start_mins로 계산 된 정수를 갖고 싶으면 'start'열이 있습니다.두 개의 양식 입력을 하나의 db 항목으로 결합하기
나의 양식은 다음과 같습니다
<div class="form-group">
<%= f.label :start_hour %>
<%= f.select :start_hour, 6 .. 22, class: 'form-control' %>
<%= f.label :start_mins %>
<%= f.select :start_mins, 00 .. 55, class: 'form-control' %>
</div>
나는 추가 내 모델에서 before_validation :
before_validation :generate_starttime
def generate_starttime
self.start= '#{:start_hour}' * 60 + '#{start_mins}'
end
내가 내 컨트롤러에 문제가 - 나는으로 시작 전달하는 방법을 모른다 db. 나는로 PARAMS을 전달 해요 :
def create
@klass = Klass.new(contact_params)
if @klass.save
flash[:success] = "Class added"
else
flash[:error] = @klass.errors.full_messages.join(", ")
end
redirect_to new_klass_path
end
나는 self.start 및 @start을 시도 : 시작하고 아무것도 정말 작동하지 않습니다 -하지만 난 어둠에 머물 인정한다. 나는 아주 누락 것 같은 DI 느낌 : 지금 내가 받고 오류 : "self.start"버전에 대한
undefined method `start' for # Did you mean? status
및 대한
undefined method `start_mins' for # Did you mean? start start_was
"시작"과 "@start"버전 여기의 기초. 저를 올바른 방향으로 안내해 주시겠습니까? 모델에 attr_accessor :start_hours, :start_mins
를 추가
create_table "klasses", force: :cascade do |t|
t.string "name"
t.string "teacher"
t.string "day"
t.integer "start"
t.integer "duration"
end
[한 속성에 다중 입력란 사용] (https://stackoverflow.com/questions/11144030/using-multiple-input-fields-for-one-attribute) –
@VaneTrajkov 감사합니다. 나는 그 1 tbh를 놓쳤다. 나는 그 중 하나를 사용하려고하는데, 나는 오류를 없애기는하지만 여전히 : db의 start attr은 0으로 설정되어있다. – Malvinka