1

假设我的表单中有一个下拉列表,允许用户选择他们最喜欢的热饮。

<%= form_for @person do |f| %>
<%= f.select :hot_drink, [['Tea', 'tea'], ['Coffee', 'Coffee']]
...

如果用户不喜欢热饮,我希望用户能够输入 NULL 值。像这样的东西:

<%= f.select :hot_drink, [['Nothing Selected', NULL], ['Tea', 'tea'], ['Coffee', 'coffee']]

我知道这个:include_blank选项,但这不是我要找的,因为它将一个空字符串插入到数据库中,这与 NULL 不同。我的数据库中已经有许多 NULL 值,我使用此表单来插入和编辑 Person 的记录。我需要下拉列表来识别 NULL,这样我就可以编辑 Person 中的其他字段,而不必被迫更改 hot_drink 的值。

有谁知道我该怎么做?

4

1 回答 1

1

你有没有尝试过

<%= f.select :hot_drink, [['Nothing Selected', nil], ['Tea', 'tea'], ['Coffee', 'coffee']] %>

尝试nil在迁移中添加一个默认值来处理这种情况。

于 2013-06-26T11:43:46.370 回答