pongo un nombre de archivo en el lado g.rb Rails.root/lib
carpeta El contenido del archivo es la siguiente:Adición lib a '' config.autoload_paths en Rails 3 no autocarga mi módulo
module Google
end
Luego añadir
config.autoload_paths += %W(#{config.root}/lib #{Rails.root}/app/delayed_jobs)
a mi Rails.root/config/application.rb
Sin embargo, cuando intento de invocar a Google de rails console
, se produce una excepción. La excepción desaparece solo si ejecuto require 'google'
. ¿Por qué? ¿No debería mi archivo estar cargado automáticamente y no debería acceder al módulo sin ninguna declaración adicional de require
?
así es esto un error o una convención? – Blankman
Creo que esto es una convención. Rails toma nombres constantes y los convierte en rutas de acceso. :: se convierte en/para este propósito. Entonces Google :: Docs se convierte en google/docs.rb. Podría debatir sobre la utilidad de esto, pero esa es mi comprensión de la funcionalidad actual. –
No es una convención per se, es la forma en que el intérprete de Ruby busca cosas, por lo que sé – Ghoti