Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby gsub不替换换行符_Ruby On Rails_Ruby_Ruby On Rails 3_Replace_Gsub - Fatal编程技术网

Ruby on rails Ruby gsub不替换换行符

Ruby on rails Ruby gsub不替换换行符,ruby-on-rails,ruby,ruby-on-rails-3,replace,gsub,Ruby On Rails,Ruby,Ruby On Rails 3,Replace,Gsub,我有这个密码 str = @universal_claim_form.errors.full_messages.join str.gsub('Patient Contact Information: Value', 'Patient phone number') if str =~ /Patient Contact Information/ debugger str.gsub("\\n", "<br/>") debugg

我有这个密码

str = @universal_claim_form.errors.full_messages.join
        str.gsub('Patient Contact Information: Value', 'Patient phone number') if str =~ /Patient Contact Information/
        debugger
        str.gsub("\\n", "<br/>")
        debugger
        flash.now[:error] = "Form has errors and was unable to be submitted.<br/> " << str
您可以调用以改变正在调用它的字符串,而不是返回新字符串

gsub在irb中工作的原因是它正在输出结果——irb不做任何超出输入范围的赋值或变异,例如

irb(main):001:0> foo = 4
=> 4
irb(main):002:0> foo + 6
=> 10
foo被赋值为4,因此它输出该赋值的结果,同样,对于foo+6,它输出结果,但foo的值不变

当您调用gsub时,它返回一个带替换的新字符串,这就是为什么您觉得它在irb中工作的原因,这和上面打印的4没有什么不同

您可以调用以改变正在调用它的字符串,而不是返回新字符串

gsub在irb中工作的原因是它正在输出结果——irb不做任何超出输入范围的赋值或变异,例如

irb(main):001:0> foo = 4
=> 4
irb(main):002:0> foo + 6
=> 10
foo被赋值为4,因此它输出该赋值的结果,同样,对于foo+6,它输出结果,但foo的值不变

当您调用gsub时,它返回一个带替换的新字符串,这就是为什么您觉得它在irb中工作的原因,这和上面打印的4没有什么不同

gsub是非变异的,这意味着它将只返回一个str的副本,其中包含子字符。如果您在irb中再次调用s,您将看到这一点。新行将再次返回。你可以使用变异版本gsub!它应该会起作用。还有gsub,我发现特殊字符在正则表达式中可读性更强,例如str.gsub/\n/,。最后请注意gsub!如果没有替换,将返回nil,str将保持不变。gsub是非变异的,这意味着它将只返回str的一个副本,其中包含子字符。如果在irb中再次调用s,则会看到这一点。新行将再次返回。你可以使用变异版本gsub!它应该会起作用。还有gsub,我发现特殊字符在正则表达式中可读性更强,例如str.gsub/\n/,。最后请注意gsub!如果没有替换,则返回nil,str将保持不变。