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

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 使用带有Simple_Form的Rails Active Record枚举类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我声明一个枚举类型的模型,如:
  1. class Event < ActiveRecord::Base
  2. enum event_type: { "special_event" => 0,"pto" => 1,"hospitality" => 2,"classroom" => 3
  3. }

然后在我的更新视图中,我有一个表单:

  1. <%= simple_form_for @event do |f| %>
  2. <%= f.input :event_type,collection: Event.event_types.keys %>
  3. ...
  4. <% end %>

这很好用,我得到一个填充了我的枚举类型的选择.
当我在我的控制器中执行@ event.update(event_params)时,我可以检查db并看到event_type字段已更新为正确的整数值.

但是,当我再次访问编辑页面时,select会显示一个nil值.如果我通过在表单中​​添加调试行来检查其值:

  1. <%= f.input :event_type,collection: Event.event_types.keys %>
  2. <%= debug @event %>

我看到event_type的值是正确的:

  1. --- !ruby/object:Event
  2. attributes:
  3. ...
  4. event_type: '2'

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

任何想法将不胜感激.

猜你在找的Ruby相关文章