gpt4 book ai didi

ruby-on-rails - simple_form 在 collection_select 上显示当前值

转载 作者:太空宇宙 更新时间:2023-11-03 16:04:23 25 4
gpt4 key购买 nike

我正在使用 simple_form 并在模型中存储了一组值。我希望索引存储在表中,值显示在选择下拉列表中。

到目前为止我有这个:

型号

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 处的值,即使正确的值存储在数据库中也是如此。

此外,这段代码似乎很复杂。作为答案的一部分,如果有更简洁的方法来实现相同的目标,请告诉我。

最终代码

根据已接受的答案, View 中的最终代码是这样的,供任何其他尝试做同样事情的人使用。

<%= 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 并像这样设置它:selected: f.object.primer_tm_formula

关于ruby-on-rails - simple_form 在 collection_select 上显示当前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17504524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com