У меня есть несколько функций, которые обезьяна исправляет класс строк в файле с именем string_class.rb
, который в настоящее время помещается в config\initializers\string_class.rb
. Код выглядит следующим образом:rails 4 lib папка против папки инициализаторов
class String
def capitalize_first_char
self.sub(/^(.)/) { $1.capitalize }
end
def capitalize_each_sentence
self.gsub(/([a-z])((?:[^.?!]|\.(?=[a-z]))*)/i) { $1.upcase + $2.rstrip }
end
end
После этого совсем немного исследований я на заборе, если этот класс должен жить в инициализаторах или Lib папку. Поэтому я обращаюсь к своим коллегам-гикам за ответами на это и немного руководства.
Как и в сторону, те бедные кандидаты для исправления в строку. Они (предположительно) предназначены исключительно для показа. Вы должны просто написать вспомогательные функции в 'app/helpers/* _ helper.rb'. – meagar
@meagar Я бы хотел, чтобы они были доступны во всех контроллерах и представлениях, так что помощники были бы в порядке? –
Нет, это довольно нормальное требование для помощников. Если ваши контроллеры нуждаются в них, вы просто определяете метод в 'ApplicationController'. Это делает их доступными для всех контроллеров, чем наследует ваш 'ApplicationController', который должен быть всеми из них. Затем укажите, что они являются вспомогательными методами с помощью ['helper_method: capitalize_first_char,: capitalize_each_sentence'] (http://apidock.com/rails/ActionController/Helpers/ClassMethods/helper_method), и они также будут доступны во всех представлениях , – meagar