Это произошло из-за того, что я использовал в своем приложении redux-saga v1.0.2, а response-admin использует v0.16.0 для внутреннего использования. См. https://github.com/marmelab/react-admin/issues/3029
.
Инициализируйте их в определении модуля.
module MyModule
# self here is MyModule
@species = "frog"
@color = "red polka-dotted"
@log = []
def self.log(msg)
# self here is still MyModule, so the instance variables are still available
@log << msg
end
def self.show_log
puts @log.map { |m| "A #@color #@species says #{m.inspect}" }
end
end
MyModule.log "I like cheese."
MyModule.log "There's no mop!"
MyModule.show_log #=> A red polka-dotted frog says "I like cheese."
# A red polka-dotted frog says "There's no mop!"
Это установит переменные экземпляра, когда модуль будет определен. Помните, Вы можете alwasys вновь открыть модуль позже, чтобы добавить больше переменных экземпляра и определений метода, или переопределить существующие:
# continued from above...
module MyModule
@verb = "shouts"
def self.show_log
puts @log.map { |m| "A #@color #@species #@verb #{m.inspect}" }
end
end
MyModule.log "What's going on?"
MyModule.show_log #=> A red polka-dotted frog shouts "I like cheese."
# A red polka-dotted frog shouts "There's no mop!"
# A red polka-dotted frog shouts "What's going on?"
Можно использовать:
def init(var=0)
@var = var
end
И это примет значение по умолчанию к 0, если Вы ничего не передадите.
Если Вы не хотите должными быть называть его каждый раз, Вы могли бы использовать что-то вроде этого:
module AppConfiguration
mattr_accessor :google_api_key
self.google_api_key = "123456789"
...
end
для класса я сказал бы, что следующее, так как инициализирование называют каждый раз, когда Вы .new новый экземпляр класса.
def initialize
@var = 0
end
Это продолжает, который инициализирует модуль, будет назван, если включение класса инициализирует вызовы супер, но не упоминает, что это - последствие того, как супер работы везде, не специальная обработка для инициализируют. (Почему мог бы каждый принимать инициализировать, получает специальную обработку? Поскольку это получает специальную обработку относительно видимости. Особые случаи создают беспорядок.)