Подтвердить что ты не робот

Доступ к модулю Ruby Module

У меня есть модуль ruby ​​для констант. Он имеет список переменных и 1 метод, который применяет форматирование. Я не могу получить доступ к методу в этом модуле. Любая идея почему?

4b9b3361

Ответ 1

Если вы include модуль, метод становится методом экземпляра, но если вы extend модуль, то он становится методом класса.

module Const
  def format
    puts 'Done!'
  end
end

class Car
  include Const
end

Car.new.format # Done!
Car.format # NoMethodError: undefined method format for Car:Class

class Bus
  extend Const
end

Bus.format # Done!
Bus.new.format # NoMethodError: undefined method format

Ответ 2

module Foo
  def self.hello # This is a class method
    puts "self.hello"
  end

  def hello # When you include this module, it becomes an instance method 
    puts "hello"
  end
end

Foo.hello #=> self.hello

class Bar
  include Foo
end

Bar.new.hello #=> hello

Ответ 3

Как правило, с модулями эти вещи должны происходить:

- > Путь автозагрузки в application.rb, добавить строку:

config.autoload_paths += %W(#{config.root}/lib)

- > Установить модуль в /lib

- > Включить модуль с 'include NAMEOFMODULE'

(Если у модуля есть символ подчеркивания, например game_engine, вам нужно включить GameEngine)