ruby-on-rails - rails_admin gem 破坏了 Rails 4.1 中引入的枚举属性

标签 ruby-on-rails ruby-on-rails-4 enums ruby-on-rails-4.1

Rails 4.1 引入 enums , 中断 rails_admin .任何解决方案或变通方法?

我的模型在顶部包含以下行

enum category: {industry: 1, company: 2, event: 3}

我的 Gemfile 有以下几行
gem 'rails_admin', :git => 'git://github.com/sferik/rails_admin.git'

没有与此问题相关的其他代码。我没有修改 rails_admin 引擎的默认行为。以下是我在尝试通过 rails_admin 界面编辑包含枚举属性的任何模型时遇到的错误。
ArgumentError - '3' is not a valid category:
  activerecord (4.1.1) lib/active_record/enum.rb:103:in `block (3 levels) in enum'
  activerecord (4.1.1) lib/active_record/attribute_assignment.rb:45:in `_assign_attribute'
  activerecord (4.1.1) lib/active_record/attribute_assignment.rb:32:in `block in assign_attributes'
  activerecord (4.1.1) lib/active_record/attribute_assignment.rb:26:in `assign_attributes'
   () Users/nicolas/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/bundler/gems/rails_admin-1d604b22d24c/lib/rails_admin/adapters/active_record/abstract_object.rb:19:in `set_attributes'
   () Users/nicolas/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/bundler/gems/rails_admin-1d604b22d24c/lib/rails_admin/config/actions/edit.rb:29:in `block (2 levels) in <class:Edit>'
  (eval):8:in `edit'
  actionpack (4.1.1) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
  actionpack (4.1.1) lib/abstract_controller/base.rb:189:in `process_action'
  actionpack (4.1.1) lib/action_controller/metal/rendering.rb:10:in `process_action'
  actionpack (4.1.1) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
  [...]

发生的情况是 rails_admin 无法识别枚举,并且在其界面中将它们显示为数字而不是字符串。然后,当您单击保存时,它会引发上述异常。

最佳答案

这是 rails_admin 的一个 Unresolved 问题。
看这里:https://github.com/sferik/rails_admin/issues/1993
概括:
将以下要点添加到您的配置/初始化程序中
https://gist.github.com/dmilisic/38fcd407044ace7514df

关于ruby-on-rails - rails_admin gem 破坏了 Rails 4.1 中引入的枚举属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24348281/

相关文章:

ruby-on-rails - 检查数组中每条记录的康康康能力是否正确?

mysql - Rails-使用模型文件中的方法保存时丢失数据

ruby-on-rails - 布伦特里支付网关 : Dealing with "payment_method_token"?

java - 打印枚举的名称

c - 在 C 中使用 enum 和 int 变量的区别

ruby-on-rails - 使用 Paperclip 从 AWS 下载声音文件

ruby-on-rails - ApplicationController 中具有参数值的类变量

使用 Rails ActiveRecord 的 MySQL REGEXP

ruby-on-rails - 如何建模这个 `has_one` `belongs_to` 关系?

通用枚举到int的C#非装箱转换?