экранирование строки ruby ​​при добавлении - PullRequest
0 голосов
/ 09 сентября 2010

В Ruby on Rails я получил номер строки, состоящий из 3 частей: префикс, счетчик, суффикс

В настройках модели:

def self.number
prefix = setup.receipt_prefix.blank? ? "" : setup.receipt_prefix.to_s
counter = setup.receipt_counter.blank? ? "" : setup.receipt_counter+1
suffix = setup.receipt_suffix.blank? ? "" : setup.receipt_suffix.to_s

каждая отдельная строка показывает нормально:

puts prefix 

=> \ # _

puts counter 

=> 1234

puts suffix 

=> # $ @ s

но когда я добавляю3 строки вместе, добавляется обратная косая черта:

prefix + counter + suffix

=> \\ #_ 1234 \ # $ @ s

как я могу избежать "#" "\" при добавлении 3нанизывать?как

=> \ #_ 1234 # $ @ s

любой помощник по Ruby или Rails, который я могу использовать в модели?ТНХ ~~

1 Ответ

1 голос
/ 09 сентября 2010

Строка будет выглядеть иначе, если вы получите значение по сравнению с выводом (выводом) значения. Смотрите следующую irb сессию.

>> a = "\\#_"
=> "\\#_"
>> puts a
\#_
=> nil
>> b = "1234"
=> "1234"
>> puts a + b
\#_1234
=> nil
>> a + b
=> "\\#_1234"

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

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