我选择了以下形式:
<%= select_tag :x, options_from_collection_for_select(@dmj, :id, :name, :selected), {class: "form-control"} %>
但是当我加载页面时,未选择其值在db中设置的选项。
符号:selected
来自控制器中的SQL查询,如果我尝试将:name
替换为:selected
中的options_from_collection_for_select
,我可以看到它的值是对的。
此外,如果我在options_from_collection_for_select
中手动设置整数,则会选择相应的选项。
为什么我没有成功选择带符号的选项?
编辑:
我的查询正在进行连接以从Join表中检索所选内容。这是查询:
@dmj = DiscoveryModeInjury.find_by_sql(&#34; SELECT D.name,D.id,L.discovery_mode_injury_id AS已选中
从
discovery_mode_injuries D
LEFT OUTER JOIN
link_dismodeinj_hospitalizations L
ON
D.id = L.discovery_mode_injury_id
WHERE
flag =&#39; disc&#39;
订购单
D.name&#34)
如果我正确理解了Akash Srivastava的建议,那么查询应该返回DiscoveryModeInjury id字段?怎么样..?感谢。
答案 0 :(得分:0)
确保您对:selected
的查询返回:id
字段。基本上,selected
中的options_from_collection_for_select()
选项应与value
字段位于同一字段中,在您的情况下为:id
。我们中的许多人犯了这样的错误,即将selected
的结果保留为collection
的对象。