我声明一个枚举类型的模型,如:
- class Event < ActiveRecord::Base
- enum event_type: { "special_event" => 0,"pto" => 1,"hospitality" => 2,"classroom" => 3
- }
然后在我的更新视图中,我有一个表单:
- <%= simple_form_for @event do |f| %>
- <%= f.input :event_type,collection: Event.event_types.keys %>
- ...
- <% end %>
这很好用,我得到一个填充了我的枚举类型的选择.
当我在我的控制器中执行@ event.update(event_params)时,我可以检查db并看到event_type字段已更新为正确的整数值.
但是,当我再次访问编辑页面时,select会显示一个nil值.如果我通过在表单中添加调试行来检查其值:
- <%= f.input :event_type,collection: Event.event_types.keys %>
- <%= debug @event %>
我看到event_type的值是正确的:
- --- !ruby/object:Event
- attributes:
- ...
- event_type: '2'
但输入选择器仍然是空白而不是显示“热情好客”.
任何想法将不胜感激.