При использовании края направляющих можно полагаться , Inflector.parametrize - вот является примером из документации:
class Person
def to_param
"#{id}-#{name.parameterize}"
end
end
@person = Person.find(1)
# => #
<%= link_to(@person.name, person_path(@person)) %>
# => Donald E. Knuth
Также, если необходимо обработать более экзотические символы, такие как диакритические знаки (Г©phГ©mГЁre) в предыдущей версии направляющих, можно использовать смесь PermalinkFu и DiacriticsFu:
DiacriticsFu::escape("éphémère")
=> "ephemere"
DiacriticsFu::escape("räksmörgås")
=> "raksmorgas"
Добавьте константу в модуль:
module Foo
Logger = Logger.new
class A
class B
class C
...
class Z
end
Затем вы можете сделать Logger.log ('бла ')
в ваших классах. Поскольку мы дублируем глобальную константу Logger
с помощью Foo :: Logger
, это означает, что если вы хотите обратиться к классу Logger
внутри Модуль Foo
, вы должны использовать разрешение области: :: Logger
.
You could create a singleton Logger for your app, so every reference will be to the same object.
require 'singleton'
class Logger
include Singleton
end
l = Logger.instance
k = Logger.instance
puts k.object_id == l.object_id #returns true