添加时ruby字符串转义

时间:2010-09-09 02:45:34

标签: ruby-on-rails ruby

在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 

=>    #$ @小号

但是当我将3个字符串加在一起时,会出现一个加法反斜杠:

prefix + counter + suffix

=>    \\ #_ 1234 \#$ @小号

当我将3个字符串加在一起时,如何逃避“#”“\”?喜欢

=>    \ #_ 1234#$ @小号

我可以在模型中使用任何Ruby或Rails的助手吗? THX ~~

1 个答案:

答案 0 :(得分:1)

如果你得到的值与print(put)相符,那么字符串会有所不同。请参阅以下irb会话。

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

实际的字符串值中有两个反斜杠。但是如果你打印字符串,只会出现一个。