def parse(line)
_, remote_addr, status, request, size, referrer, http_user_agent, http_x_forwarded_for = /^([^\s]+) - (\d+) \"(.+)\" (\d+) \"(.*)\" \"([^\"]*)\" \"(.*)\"/.match(line).to_a
print line
print request
if request && request != nil
_, referrer_host, referrer_url = /^http[s]?:\/\/([^\/]+)(\/.*)/.match(referrer).to_a if referrer
method, full_url, _ = request.split(' ')
in parse: private method 'split' called for nil:NilClass (NoMethodError)
Итак, как я понимаю, что это звонит split
не на веревочке, но на nil
. Эта часть анализирует журнал веб-сервера. Но я не могу понять, почему он получает nil
. Насколько я понимаю, это пусто.Ruby: проверить, если объект является нулевым
Некоторые из подшаблонов в регулярном выражении не удалось? Так что это ошибка веб-сервера, которая иногда генерирует неправильные строки ведения журнала?
Кстати, как мне писать в файл в рубине? Я не могу правильно прочитать это окно cmd под окнами.
«Как я понимаю, это нуль.» В Ruby нет такой вещи, как 'null'. Просто «нуль». –
Почему то, что получает ноль? Функция не указана в конце, и вы определяете несколько переменных ... – Amadan
Знак, который я знаю. Амадан, это не мой помощник по сценарию. :) Как я понимаю, регулярное выражение бросает подматтерные совпадения в перечисленные переменные. Как функция списка в php, и когда подшаблон терпит неудачу, он просто назначает ему объект nil? – Somebody