#php #ruby #programming-languages
#php #ruby #языки программирования #программирование-языки
Вопрос:
Что является эквивалентом PHP dirname(__FILE__)
в Ruby?
Комментарии:
1. вы пробовали phptoruby.com/submit-code ?
2. отличный сайт! но я не смог найти dirname ( ФАЙЛ ) там
3. если вы используете PHP 5.3, там также есть,
__DIR__
поэтому вам не нуженdirname()
вызов функции — см. php.net/manual/en/language.constants.predefined.php4. нет, но вы можете отправлять свои запросы на. Просто еще один ресурс!
5. @Spudley Хороший совет, но не очень подходящий к вопросу.
![]()
Ответ №1:
С помощью @potac и @jakub-hampl я пришел к
File.dirname(File.expand_path(__FILE__))
Это дало мне именно то, что я хотел
Ответ №2:
puts File.expand_path(__FILE__)
Я не знаком с Ruby (но с PHP), и я нашел это в Rails для разработчиков PHP
Комментарии:
1. которые возвращают путь к файлу, а не к папке, в которой он присутствует. Спасибо, это помогло мне добраться до этого. File.dirname(File.expand_path( ФАЙЛ )) . Спасибо!
Ответ №3:
Как насчет:
File.dirname __FILE__
Комментарии:
1. помогает, но только с помощью FILE возвращает полный путь к файлу
2. @JimRubenstein это Ruby, скобки не требуются. (И в зависимости от вашего руководства по стилю, они могут быть запрещены в некоторых ситуациях).
3. Извините за придурковатость, так получилось, что я только что закончил тираду о том, как я ненавижу тот факт, что Ruby позволяет использовать parens необязательными. Я понимаю выразительность в некоторых ситуациях, но это действительно вносит массу путаницы в код. Разница между свойством объекта и методом объекта становится неоднозначной. Я буду 1, потому что я нашел применение в ответе, я просто хотел бы, чтобы вы использовали скобки вместо того, чтобы продвигать языковую «функцию» в этом случае
Ответ №4:
Начиная с Ruby 2.0, в Ruby также есть __dir__
метод, который напрямую реализует то, о чем вы просите.
Ответ №5:
Dir.pwd
является ли эквивалентом PHP для dirname(__FILE__)
Комментарии:
1. На самом деле, нет. Это возвращает текущий рабочий каталог процесса, а не файл, который был вызван.