Глобальная переменная ruby $: показывает, что находится в пути загрузки. Когда я смотрю на пути загрузки моего приложения рельсы, я сразу замечаю Либерал каталог в корневом каталоге Rails в нем:требует инструкции для классов в пути загрузки?
puts $:
/Users/myuser/projects/myproject/lib
/Users/myuser/projects/myproject/app/assets
/Users/myuser/projects/myproject/app/controllers
/Users/myuser/projects/myproject/app/helpers
/Users/myuser/projects/myproject/app/mailers
/Users/myuser/projects/myproject/app/models
...
Я добавил файл с именем my_module.rb и включает в себя модуль MyModule. Я придерживаюсь метода hello_world, который ставит «hello world». Теперь, когда я включаю модуль в модели рельсов, как это:
class MyModel < ActiveRecord::Base
include MyModule
end
И тогда я запущу консоль:
2.1.2 :001 > m = MyModel.new
NameError: uninitialized constant MyModel::MyModule
Рубин не может найти исходный файл MyModel. Для тог эт это работало, я явно требуют:
class MyModel < ActiveRecord::Base
require 'my_module'
include MyModule
end
Сейчас работают вещи:
2.1.2 :001 > m = MyModel.new
2.1.2 :001 > b.hello_world
2.1.2 :001 > hello world
2.1.2 :001 > => nil
Поскольку Lib уже в пути загрузки, почему я должен все еще явно требует MyModule? И как рельсы уйти, а не использовать, нужны повсюду?
хорошо. –
Было бы здорово, если бы я мог объединить свои аккаунты – Donato