Ruby on rails 在rails中设置枚举
我试图在Rails测试中模拟类似枚举的效果。然而,我似乎无法让它发挥作用 例如 我有一个模块叫Days:Ruby on rails 在rails中设置枚举,ruby-on-rails,enums,Ruby On Rails,Enums,我试图在Rails测试中模拟类似枚举的效果。然而,我似乎无法让它发挥作用 例如 我有一个模块叫Days: module Days SUNDAY = 0; MONDAY = 1; TUESDAY = 2; WEDNESDAY = 3; THURSDAY = 4; FRIDAY = 5; SATURDAY = 6; end 在同一个目录中,我有一个调度器_spec.rb require 'spec_helper' describe Schedule
module Days
SUNDAY = 0;
MONDAY = 1;
TUESDAY = 2;
WEDNESDAY = 3;
THURSDAY = 4;
FRIDAY = 5;
SATURDAY = 6;
end
在同一个目录中,我有一个调度器_spec.rb
require 'spec_helper'
describe Scheduler do
include Days
...
但是,Ruby会抛出以下错误:
in `block in <top (required)>': uninitialized constant Days (NameError)
from /Users/krg07/.rvm/gems/ruby-1.9.3-p125/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:201:in `module_eval'
from /Users/krg07/.rvm/gems/ruby-1.9.3-p125/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:201:in `subclass' ...
你知道我该怎么做吗?谢谢 ruby没有enum,但是你可以在链接中做类似的事情
您的模块不得包含在Rails自动加载路径中或不遵循自动加载约定。您可能只需要在包含文件之前要求该文件,就可以解决此问题:
require 'spec_helper'
require './days'
describe Scheduler do
include Days
Rails 4.1具有枚举。我刚刚升级并开始使用它。工作起来很有魅力
我同意。我尝试了类似的方法-我在一个模块中添加了这些枚举,并尝试包含该模块。但是,问题是找不到此模块。链接解释了如何将它们放入类中。或者你也可以使用hash:sunday=>1我觉得可以解决它,但不幸的是,它找不到常量。I get:in':未初始化常量错误