2
simple_form을 사용 중이고 모델에 값 배열이 저장되어 있습니다. 선택 드롭 다운에 표시된 값을 사용하여 테이블에 저장된 인덱스를 원합니다.simple_form은 collection_select에 현재 값을 표시합니다.
지금까지 나는이있다 :
모델
PRIMER_TM_FORMULA_OPTIONS = ["Breslauer et al. 1986", "SantaLucia 1998"]
형태
<%= f.input :primer_tm_formula, :collection => 0..Primer3Batch::PRIMER_TM_FORMULA_OPTIONS.length, :label_method => lambda { |i| Primer3Batch::PRIMER_TM_FORMULA_OPTIONS[i] }, label: 'Thermo Parms', input_html: {class: 'input-large'}, selected: :primer_tm_formula %>
그것은 주로 일하고 있지만 갱신 한 후, 양식 새로 고칠 때, 올바른 값이 저장되어 있더라도 항상 페이지는 배열의 0 인덱스에 값을 표시합니다 데이터베이스에 저장됩니다.
또한이 코드는 매우 복잡합니다. 대답의 일부로, 같은 목표를 달성하기위한보다 간결한 방법이 있다면 알려주십시오.
허용 대답을 바탕으로 최종 코드는
, 뷰의 마지막 코드는 같은 일을하려고 다른 사람을 위해, 이것이다.
<%= f.input :primer_tm_formula,
collection: 0..Primer3Batch::PRIMER_TM_FORMULA_OPTIONS.length,
label_method: lambda { |i| Primer3Batch::PRIMER_TM_FORMULA_OPTIONS[i] },
label: 'Thermo Parms',
input_html: {class: 'input-large'},
selected: Primer3Batch::PRIMER_TM_FORMULA_OPTIONS[f.object.primer_tm_formula] %>
는
감사 답변에 대한,하지만 난 할 수 없었다 그것을 작동 시키십시오. 당신은 선택을 의미 했습니까? f.object.primer_tm_formula (값이 아님) – ardochhigh
예, 필자는 타이핑에 대해 유감스럽게 생각합니다. primer_tm_formula –
아니요, 데이터베이스에 무엇이 있는지에 관계없이 0 인덱스 값을 표시하는 것과 같은 일을하는 것이 두렵습니다. – ardochhigh