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 %>
這主要是工作,但更新後,當窗體被刷新,即使正確的值是stor,頁面也始終顯示數組的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(not value) – ardochhigh
是的,抱歉我的意思primer_tm_formula –
不,我擔心它做同樣的事情 - 顯示0索引值,無論數據庫中的內容。 – ardochhigh