2013-03-05 1 views
-2

Я новичок в Ruby и работаю над небольшой программой, где мне нужно создать модуль с методом, который берет путь к файлу и читает содержимое файла. Ниже приведен код модуля.Метод модуля Ruby, который принимает путь к файлу

module Model 

def self.generate(file_path) 
    file_name = File.basename("file_path") 
    puts File.read(file_name) 
    #return ex. Person class 

end 
end 

Когда я пытаюсь вызвать метод как Model.generate ("/ Users/MyName/Rubyfolder/mytext.txt /"), я получаю следующее сообщение об ошибке:

Errno::ENOENT: No such file or directory - file_path 
from ./code_generation.rb:5:in `read' 
from ./code_generation.rb:5:in `generate' 
from (irb):34 

Я предполагаю, что это может быть проблема с тем, как я описываю путь ... но я понятия не имею, как заставить его работать. Кто-нибудь может мне помочь, пожалуйста!

ответ

1

"file_path" - это строка. Вы, скорее всего, будете использовать переменную file_path (без кавычек).

+0

спасибо !! Это сработало!! – flickaRW

+0

Так что примите ответ. – Hauleth

2

Это проблема:

file_name = File.basename("file_path") 

Изменить его к этому:

file_name = File.basename(file_path) 

file_path является параметром, в то время как "file_path" является строкой, которая, вероятно, не является именем существующего файла.

+0

Спасибо! Это сработало!! – flickaRW