Ruby:如何在fixture中配置枚举?

时间:2015-03-26 23:45:53

标签: ruby-on-rails ruby unit-testing enums fixtures

鉴于此课程:

class User < ActiveRecord::Base

enum permission: {
    permission_user: 1,
    permission_staff: 2,
    permission_manager: 3,
    permission_admin: 4,
    permission_super_admin: 5
}

我想创建一个看起来像这样的夹具:

testuser1:
  id: 1
  username: sam
  permission: :permission_staff

我尝试过多种语法变体,但没有找到有效的方法。结果user.permission是nil或0.我知道枚举是相对较新的添加。可以这样做吗?

1 个答案:

答案 0 :(得分:14)

根据enum docs,您可以通过类引用可枚举:

User.permissions[:permission_staff]

工厂只是ruby代码 - 因此他们应该能够以相同的方式访问该值

testuser1:
  id: 1
  username: sam
  permission:  <%= User.permissions[:permission_staff] %>