0

另一个简单的问题我肯定很抱歉,但我似乎无法找到解决我正在尝试做的事情的方法。

我有一个带有选择字段(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 所以一些关于我所缺少的指针会很棒。

4

1 回答 1

0

的参数为f.selectattribute_name, option_tags, options.
option_tags应该是一串 html 选项标签。
有一些助手可以从值数组、集合等构造这样的字符串:options_for_select, options_from_selection_for_select.

您必须使用这些助手之一。

您可以通过以下方式获取现有的vehicle_sizees:

Model.pluck(:vehicle_size).uniq

所以你的选择可能看起来像:

<%= f.select :vehicle_size, options_for_select(Model.pluck(:vehicle_size).uniq,@model.vehicle_size) %>

请参阅表单助手的Rails 指南

于 2013-07-24T14:37:22.140 回答