Если мне нужно добавить (конкретные для проекта) классы в мой контроллер в рельсах, как правильно/место поместить и «включить» их/там файлы .rb? (кавычки: ключевое слово ruby не включает)
Я новичок в рельсах и не нашел правильного пути. LIB звучит как для большего количества общедоступных библиотек и, как я узнал, не перезагружается по умолчанию в режиме разработки.
конечно, я мог бы поместить все в controler.rb, но...
ответ для меня:
Во-первых: нет никаких правил, если вы помните (или изучаете, как я) правила рельсов: NameOfCla -> name_of_cla(.rb) ‹-- не используйте class как слово для очистки
назовите свой класс, как вам нравится:
class ExtendCon #<--- not using controller here for clearence
....
поместите его в файл extend_con.rb
, дождитесь объяснения пути, пожалуйста. если вы назвали свой класс «MYGreatThing», это будет «m_y_great_thing» (никогда не проверяйте это), поэтому избегайте китайских иероглифов
если ваш контроллер использует
@letssee=ExtendCon.new
rails самостоятельно изучает этот класс и файл (extend_con). я так и не понял нужен ли перезапуск сервера. (первый раз)
выберите путь для размещения файла: (я предпочитаю путь Дейва) app/myexten
или что вам нравится, делая его специфичным для приложения и по-прежнему отбрасывая стандартные рельсы "вещи"
если вы не такие ленивые, как я (я поместил это в приложение / ontrollers), поместите выбранный вами путь в config/application.rb
лайк (комментарии есть, чтобы найти его)
# Custom directories with classes and modules you want to be autoloadable.
# config.autoload_paths += %W(#{config.root}/app/controllers)
config.autoload_paths += %W(#{config.root}/app/myexten)
этот работает для меня во всех режимах, включая «разработчик», и мне не нужно было помещать «свои» вещи в app/lib