Ruby String Object Пусто или нет? - PullRequest
       3

Ruby String Object Пусто или нет?

5 голосов
/ 05 октября 2011

У меня есть строка, которая выводит Ruby on Rails render_to_string

В Ruby-отладчике это то, что я получаю

pp string.inspect # ->  blank
pp string         # ->  blank
pp string.Class   # ->  String
pp string.empty?  # ->  false
pp string.nil?    # ->  false
pp string.blank?  # ->  false
pp string.to_s    # ->  blank

Я знаю, что в строке есть содержимое, потому что logger.info string возвращает строку, как и ожидалось, но я не знаю, как к ней добраться.

Есть идеи? Спасибо!

РЕДАКТИРОВАТЬ: я понял, что эта проблема очень локализована. Это происходит только тогда, когда я использую отладчик ruby. И это происходит с любой строкой, в которой есть символ процента.

Например, если я сделал строку

string = 'this is a string with a % symbol'

строку больше нельзя проверять, печатать или даже распаковывать.

Я на Ruby 1.8 и Rails 2.3.

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

1 Ответ

2 голосов
/ 19 октября 2011

Похоже, что ваша строка определенно не пуста.

Можете ли вы скачать расширение hexdump для класса String и сделать это:

require 'hexdump'

#... whatever you do in your program

puts string.hexdump

и опубликовать вывод в вашем вопросе?

Таким образом, мы можем видеть, что находится в строке, даже если это непечатаемые символы ..

См .:

http://www.unixgods.org/~tilo/Ruby/hexdump.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...