Ale*_*ein 5 ruby enums unit-testing ruby-on-rails fixtures
鉴于此类:
class User < ActiveRecord::Base
enum permission: {
permission_user: 1,
permission_staff: 2,
permission_manager: 3,
permission_admin: 4,
permission_super_admin: 5
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个看起来像这样的夹具:
testuser1:
id: 1
username: sam
permission: :permission_staff
Run Code Online (Sandbox Code Playgroud)
我已经尝试了许多语法变体,但没有找到有用的东西.结果user.permission是nil或0.我知道枚举是相对较新的添加.可以这样做吗?
Tar*_*ast 14
根据enum文档,您可以通过类引用可枚举,如下所示:
User.permissions[:permission_staff]
Run Code Online (Sandbox Code Playgroud)
而工厂只是红宝石代码 - 所以他们应该能够以同样的方式访问价值
testuser1:
id: 1
username: sam
permission: <%= User.permissions[:permission_staff] %>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1282 次 |
最近记录: |