另一个简单的问题我肯定会很抱歉,但是我似乎无法找到解决方案。
我有一个带有选择字段(vehicle_size)的表单,我想用数据库中当前已设置了vehicle_size记录的所有现有选项填充该字段。我还想将所选选项设置为数据库中当前设置为(如果设置)的任何选项,但是我想我遇到的问题是尚未设置此值的原因。
我目前有以下代码:
<%= f.select(:vehicle_size, @models.index_by {|m| m.vehicle_size}, :selected => :vehicle_size) %>
它正确填充了选择选项,但是在我的新页面和编辑页面中(都使用此表单),即使当前所有记录都设置为现有选项之一,选择菜单还是空白的(vehicle_size将来对于某些记录实际上可能为空白)。
如果我然后从菜单中选择一个选项并保存记录,那么vehicle_size选项具有一个奇怪的值。类似于以下内容:
#<Model:0x007fd13e6c3790>
我很确定我以错误的方式使用index_by,所以关于我所缺少的内容的一些指针将是很棒的。
的参数f.select
是:attribute_name
,option_tags
,options
。
option_tags
应该是html选项标签的字符串。
有一些帮手可以根据值数组,集合等来构造这样的字符串:options_for_select
,,options_from_selection_for_select
。
您必须使用这些助手之一。
您可以通过以下方式获取现有的vehicle_size
es:
Model.pluck(:vehicle_size).uniq
因此您的选择可能类似于:
<%= f.select :vehicle_size, options_for_select(Model.pluck(:vehicle_size).uniq,@model.vehicle_size) %>
请参阅表单帮助器上的《Rails指南》。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句