用ruby的string join方法为一个textarea准备多行数据。
%w{word1 word2}.join ‘
‘
结果总是不对,textarea在一行中显示 “word1
word2″
以为是textarea需要什么奇迹淫巧来显示多行数据,于是google,再google…
折腾了半天没有结果,突然间电光火石,难道说。。。
%w{word1 word2}.join ”
”
果不其然,被ruby的一个小小语法陷阱害了。ruby中双引号中的字符串可以包含转义字符,比如 ,
, 但单引号中的每一个字符只是被忠实的表述,不做任何转义处理。所以文中开头的一句代码,实际上产生的是 “word1\nword2″,’
‘代表两个字符,前面的”"在生成最终的结果时被转义成了”\”。