? Espero establecer una ruta predeterminada para el registro, relativa a la ruta del archivo usando el registro, algo como esto:¿Cómo puedo acceder al __FILE__ actual en una subclase de un método en la superclase en ruby
# /path/to/lib/bar.rb
class Bar
def settings_file_path
File.dirname(File.expand_path(__FILE__))
end
end
# /path/to/app/models/foo.rb
class Foo < Bar
end
Foo.new.settings_file_path
de salida ideal:
# => /path/to/app/models
salida real:
# => /path/to/lib
Debido ARCHIVO hace referencia al archivo donde está escrito, no desde dónde se llama, devuelve el archivo bar.rb, pero quiero que algo así devuelva la ruta del archivo foo.rb, aunque el método esté definido en Bar .
¿Alguien tiene alguna sugerencia?
Esto ayuda a ciencia cierta, y fue genial para aprender, pero supongo que mi pregunta fue demasiado simplificado. $ 0 devuelve el nombre de archivo del programa principal en ejecución, que funciona para mi ejemplo, pero no si estoy ejecutando un archivo diferente (o una aplicación de Ruby on Rails completa, por ejemplo) que incluye los archivos Foo y Bar. ¡Gracias! –