Открыть файл с помощью Ruby - PullRequest
0 голосов
/ 27 февраля 2019

Мне нужно посмотреть, существует ли файл, а затем, если он существует, я хочу открыть файл и посмотреть, что в нем содержится.

У меня есть следующие методы:

def Utility.exist_request_xml(filexml)
  puts("exist_request_xml")
  if(File.exist?("#{PATH_WEBSERVICES_REQUEST}/#{filexml}"))
    puts 'file exists'
    puts(File.exist?("#{PATH_WEBSERVICES_REQUEST}/#{filexml}"))
  else
    puts 'file not exist'
  end
end


def Utility.open_request_xml(filexml)
  puts("open_request_xml")
  if(Utility.exist_request_xml(filexml))

    f=File.open("#{PATH_WEBSERVICES_REQUEST}/#{filexml}","r") 
    f.each_line do |line| 
      puts line 
    end
  else
    puts 'there is no file to open'
  end
end

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

Можете ли вы помочь мне?

1 Ответ

0 голосов
/ 27 февраля 2019

Ваш метод Utility.exist_request_xml возвращает nil, что неверно в операторе if, поэтому он переходит к другому, где вы не открываете файл.

Возвращает nilпотому что по умолчанию последнее вычисленное выражение является возвращаемым значением, а ваше последнее выражение - if.Аналогично, возвращаемое значение if - это последнее, что оценивает , то есть puts (в любой ветви).puts возвращает nil.

Вместо этого возвращает значение проверки существования:

def Utility.exist_request_xml filexml
  File.exist? "#{PATH_WEBSERVICES_REQUEST}/#{filexml}"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...