Это не значит, что Fold
существует в пространстве имен Deal
, оно говорит, что оно ищет константу Fold
, и в данный момент оно находится внутри Deal
. Например, попробуйте это:
class Foo
def test; puts Bar; end
end
Foo.new.test
и вы получите это:
NameError: uninitialized constant Foo::Bar
from (irb):3:in `test'
from (irb):7
from :0
В Rails есть вещи для автоматической загрузки констант для вас, и я предполагаю, что проблема в том, что у вас нет класса Fold
в его собственном файле. Попробуйте поместить определение класса Fold
в его собственный файл - app/models/fold.rb
и посмотрите, поможет ли это. Если это так, попробуйте положить его обратно в файл action.rb, а затем сделать что-то, что приведет к загрузке файла Action
перед выполнением оператора case
, например x = Action
прямо перед регистрацией дела. Если это работает, то вам нужно require "action.rb"
в deal.rb
, потому что проблема в том, что ваш тестовый код загружает action.rb (возможно, через какой-то другой тест), но ваш рабочий код - нет.