gpt4 book ai didi

ruby-on-rails - f.collection_select 不显示选择的值

转载 作者:数据小太阳 更新时间:2023-10-29 06:45:15 25 4
gpt4 key购买 nike

在 google 上有很多关于此搜索的结果,甚至有人在 SO 上询问过 - 但到目前为止讨论的解决方案对我没有帮助。问题是:我有一个 form_for @company |f| 并且我正在为 company_status_id 使用 f.collection_select - 但是当加载表单时,如果已设置,我希望选择实际的公司状态。通过我知道的调试器,它已被设置,但我在那里显示了一个默认值。这是代码:

= puts @company.company_status_id
= f.collection_select :company_status_id, ListCache.company_statuses, :id, :name, {:prompt => @select_value}

这是生成的 html

<select id="company_company_status_id" prompt="-Select-" name="company[company_status_id]">
<option value="1">-Not Available-</option>
<option value="2">Active</option>
<option value="3">Bankrupt</option>
<option value="4">Acquired</option>
</select>

即使我这样做,条件也保持不变:

f.collection_select :company_status_id, ListCache.company_statuses, :id, :name, {:prompt => @select_value, :selected => :selected => @company.company_status}

或者

f.collection_select :company_status_id, ListCache.company_statuses, :id, :name, {:prompt => @select_value, :selected => @company.company_status}

最佳答案

这是我最后做的:

f.collection_select :company_status_id, ListCache.company_statuses, :id, :name, {:prompt => @select_value, :selected => @company.company_status_id.to_i}

我阅读了一个类似问题的答案,collection_select 自动通过比较传递的内容与集合的属性来选择所选值。显然它们的类型有所不同,将 CompanyStatus 的 int 与 @company.company_status_id.to_i 的 int 进行比较就可以了。尽管 @company.company_status_id 也应该是 int 。我可以在数据库中看到它。无论如何,这行代码有效。

谁能解释一下,不胜感激!

关于ruby-on-rails - f.collection_select 不显示选择的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10226357/

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