Rails - класс String - Куда это идет в Rails? - PullRequest
4 голосов
/ 21 февраля 2011

Я пробую следующий урок: http://henrik.nyh.se/2007/03/ruby-wordwrap-method

У него есть блок, который нужно добавить куда-то, я думаю, за пределами помощника:

class String
  # Replace the second of three capture groups with the given block.
  def midsub(regexp, &block)
    self.gsub(regexp) { $1 + yield($2) + $3 }
  end
end

Где это должно быть в приложении rails 3? Спасибо

UPDATE

Добавлен /lib/midsub.rb

# Needed for html_format try 3
class String
  # Replace the second of three capture groups with the given block.
  def midsub(regexp, &block)
    self.gsub(regexp) { $1 + yield($2) + $3 }
  end
end

application.rb

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

Ответы [ 3 ]

3 голосов
/ 21 февраля 2011

вы можете добавить этот код в файл, скажем, 'my_string.rb' в папке / config / initializers

0 голосов
/ 21 февраля 2011

Вы можете поместить это в lib/.Затем отредактируйте config/application.rb, чтобы lib автоматически загружался:

config.autoload_paths += %W(#{config.root}/lib)
0 голосов
/ 21 февраля 2011

Такие вещи обычно идут в каталог RAILS_ROOT/lib.Все в этом каталоге автоматически загружается при загрузке Rails, хотя NB, в отличие от файлов в каталоге app, эти библиотеки не пересматриваются при каждом запросе, даже в режиме разработки, так что если вы собираетесьтестируя изменения на лету, лучше всего самостоятельно протестировать свои библиотеки и подождать, пока они не будут отшлифованы, прежде чем помещать окончательную версию в свои lib.

Руководства по Rails описывает фактический порядок загрузки файлов, хотя вы совершенно свободны, чтобы бросить вызов порядку и «перепрыгнуть» из пистолета, require включив файл ранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...