ruby-on-rails - rails 4.1 无法获取所有枚举类型

标签 ruby-on-rails

我刚刚将我的应用程序升级到 Rails 4.1.0.beta1

我有课

class User < ActiveRecord::Base
    enum usertype: { :employee => 10, :boss => 30, :manager => 40, :admin => 50 }
}

所有枚举功能都像 user.boss 一样运行良好? # 是的

但是当我尝试获取所有用户类型时

User.usertypes

我有一个未定义的“用户类型”方法

有什么帮助吗?

这是我学习的链接 http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html

编辑: 迁移

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :email
      t.string :password_digest
      t.string :remember_token
      t.boolean :is_locked
      t.integer :usertype, default: 10
      t.timestamp :last_login_at

      t.timestamps
    end
  end
end

最佳答案

您是否创建了正确的迁移?

枚举属性是数据库中映射到整数的值,但可以通过名称查询。

所以您需要一个迁移,将一个名为“usertype”的整数列添加到 Users 表中。你做到了吗?

编辑 1:

好的,刚刚测试了一下,获取映射的类方法不适用于 Rails 4.1.0.beta1,但适用于 edge Rails。所以希望它能进入下一个测试版……

编辑 2:

另外,查看 this commit它演示了在 Rails 4.1.0.beta1 中使用常量而不是类方法访问枚举映射的方式。因此,在您的情况下,您将使用 User::USERTYPE 来访问您的映射。

关于ruby-on-rails - rails 4.1 无法获取所有枚举类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21587887/

相关文章:

ruby-on-rails - 开发 Facebook 应用程序的最快框架 - CakePHP 与 Ruby on Rails

ruby-on-rails - Ruby on rails 测试 - 表 X 没有名为 Y 的列

ruby-on-rails - 如何使用带有字符串的 rails 匹配方法?

ruby-on-rails - 使用 hstore 过滤 activeadmin

ruby-on-rails - 如何在 Rails 中编写和包含常规 ruby​​ 类

ruby-on-rails - 如何建立HABTM关系

iOS 接入点 : Transferring Certificates

ruby-on-rails - Twitter Omniauth 个人资料图片在 Twitter 上更改后损坏

javascript - 使用 Rails 允许/替换逗号作为输入类型 ="number"的数字分隔符

html - 如何创建打印友好的 HTML 页面?