Скажем, у меня есть несколько пользовательских классов, которые не принадлежат моделям, контроллерам и т. Д., Я должен поместить это в / lib правильно?
В rails <3 я бы добавил этот каталог в мой путь загрузки, а в rails 3+ я бы добавил это в мой autoload_path. Это правильно? </p>
Теперь скажите, что у меня есть классы, которые расширяют уже определенные классы. Где я должен положить это так, чтобы запустить его при запуске. Например, я хочу добавить метод 'foo' в строку.
class String
def foo
'foo;
end
end
Куда мне поместить этот класс, чтобы он определялся при запуске?
Еще одна странная ошибка, с которой я сталкиваюсь, - это когда я пытаюсь определить пространство классов в lib.
module MyProject
class Foo
end
end
Теперь в консоли:
ruby-1.9.2-p136 :004 > MyProject::Foo
LoadError: Expected /Users/me/workspace/my_project/lib/foo.rb to define Foo
from /Users/rob/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:492:in `load_missing_constant'
from /Users/rob/.rvm/gems/ruby-1.9.2-p136/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:183:in `block in const_missing'
Я продолжаю получать эту ошибку. Как я могу загрузить этот файл?