我已经在 stackoverflow 上搜索了将近 2 个小时,现在正在解决类似的问题,但答案似乎不起作用。
我有以下代码:
<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name") %>
我想显示我之前选择的选项,而不是默认转到第一个标签。
在其他问题中,他们建议添加以下内容(均无效)。
<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name", "1") %>
或者:
<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name", @models.first.id) %>
附:我正在使用 Rails 3.1.RC4
最佳答案
假设除了你的 @models
其中包含完整列表,您还有 @model
其中包含当前记录,那么您可以执行以下操作:
<%=
select_tag "name_dropdown",
options_from_collection_for_select(@models, "friendly_id", "name", @model.id)
%>
基本上,第四个参数为
options_from_collection_for_select(...)
应包含您要选择的项目的 id。您的第二个代码示例每次都将所选 id 强制为 1,您发布的第三个示例始终是 @models
中的第一项。无论当前选择的实际型号如何。
关于ruby-on-rails - 如何在 select_tag/options_from_collection_for_select 中设置 "selected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6720370/