ruby-on-rails – 使用带有Simple_Form的Rails Active Record枚举类型

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 使用带有Simple_Form的Rails Active Record枚举类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我声明一个枚举类型的模型,如:
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'

但输入选择器仍然是空白而不是显示“热情好客”.

任何想法将不胜感激.

猜你在找的Ruby相关文章