Tôi có bên app
một thư mục gọi csv
và bên trong dir này tôi có một tập tin gọi là names.csv
Tôi muốn sử dụng chức năng File.read(path:string)
để đọc các tập tin.
đường dẫn tương đối của tệp là gì?Rails: đường dẫn của tập tin
25
A
Trả lời
47
file = File.join(Rails.root, 'app', 'csv', 'names.csv')
File.read(file)
4
Rails.root
điểm đến thư mục trên cùng của dự án đường ray của bạn, vì vậy con đường sẽ là:
File.read(File.join(Rails.root, 'app','csv','names.csv'))
5
Bạn nên làm: Rails.root.join "app", "csv", "names.csv"
Rails.root trả về một đối tượng PathName. PathName có một phương thức join
nhận bất kỳ số lượng đối số nào và thêm nó vào tên đường dẫn để tạo đường dẫn mới.
đọc trên PathName # tham gia ở đây:
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/pathname/rdoc/Pathname.html#method-i-join
3
Cám ơn câu trả lời ở trên, Nó cũng làm việc theo cách này cho tôi:
"#{Rails.root}/public/spreadsheets/file_name.xlsx"
Các vấn đề liên quan
- 1. log4j tương đối đường dẫn tập tin
- 2. Java đường dẫn tập tin trong Linux
- 3. Lấy các tập tin của nhà cung cấp Gem trong đường dẫn đường ống tài sản
- 4. Python - Trích xuất đường dẫn thư mục từ đường dẫn tập tin
- 5. Nhận nhiều tập tin đường dẫn với Right Click
- 6. Tạo đường dẫn tập tin ảo từ dòng
- 7. Chuyển đổi đường dẫn tuyệt đối thành đường dẫn tương đối trong tập tin thực thi
- 8. Đọc một tập tin trên một đường dẫn mạng
- 9. Qt lớp để xử lý đường dẫn tập tin
- 10. Regex để trích xuất tên tập tin từ đường dẫn
- 11. đường dẫn đến tập tin trong lớp học thư viện
- 12. Vệ sinh đường dẫn tập tin trong PHP
- 13. C# mở tập tin, đường dẫn bắt đầu với% userprofile%
- 14. ASP.NET MVC Nhận tập tin từ đường dẫn ảo
- 15. Java Properties, nhận được đường dẫn tập tin
- 16. tăng hệ thống tập tin :: đường dẫn constructor std :: length_error
- 17. Chuyển đổi NSURL đến đường dẫn tập tin địa phương
- 18. đường dẫn tập tin cho AJAX kịch bản (trong Wordpress)
- 19. Regex để xác nhận đường dẫn tập tin trong javascript
- 20. phổ biến lisp - có được đường dẫn đến tập tin
- 21. Làm thế nào để có được đường dẫn đầy đủ của tập tin từ một tập tin đầu vào
- 22. Đường dẫn của tập lệnh hiện hành PowerShell
- 23. Đường dẫn học tập ASP.NET
- 24. đường dẫn tập lệnh groovy
- 25. Làm thế nào để đường dẫn đầu ra của một lệnh để tập tin trên Linux
- 26. Những tập tin tôi phải vượt qua như là đối số tên đường dẫn của ftok()
- 27. đường dẫn tập tin như là đối số tuyến đường MVC
- 28. Đối với các tập tin trong thư mục, chỉ có tên tập tin echo (không có đường dẫn)
- 29. Rails 3.1.1 đường dẫn tài sản Heroku caching gotcha
- 30. Ví dụ đường dẫn ngắn nhất của đường dẫn LớpNotFoundException
Không cần phải sử dụng 'File.join' vì 'Rails.root' là một đối tượng' Pathname'. Chỉ cần làm điều này: 'Rails.root +" app/csv/names.csv "' –
Cụ thể, File.join KHÔNG bảo vệ bạn khỏi một hoặc nhiều phần đường dẫn là '..', và sẽ vui vẻ tạo ra một đường dẫn như 'app/csv /../ controllers/users_controller.rb' nếu được cung cấp File.join (Rails.root, 'app', 'csv', '../controllers/user_controller.rb') hoặc File.join (Rails) .root, 'ứng dụng', 'csv', '..', 'bộ điều khiển', 'user_controller.rb') – nachbar