0

Rails テストで enum のような効果を模倣しようとしています。しかし、私はそれを機能させることができないようです。

例。

Days というモジュールがあります。

module Days    
   SUNDAY = 0;
   MONDAY = 1;
   TUESDAY = 2;
   WEDNESDAY = 3;
   THURSDAY = 4;
   FRIDAY = 5;
   SATURDAY = 6;
end

同じディレクトリに、scheduler_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' ...

どうすればこれを機能させることができるでしょうか?ありがとう!

4

3 に答える 3

0

モジュールをRailsの自動ロードパスに含めたり、自動ロードの規則に従わないようにする必要があります。ファイルを含める前にファイルを要求するだけで、おそらく問題を回避できます。

require 'spec_helper'
require './days'
describe Scheduler do
  include Days
于 2012-05-27T17:09:13.903 に答える
0

ルビーには列挙型がありませんが、リンク http://www.rubyfleebie.com/enumerations-and-ruby/のように似たようなことができます

于 2012-05-27T15:36:55.243 に答える
0

Rails 4.1 には列挙型があります。アップグレードして使い始めたばかりです。魔法のように動作します!

http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html

于 2014-01-18T17:39:15.170 に答える