Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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 换行符出错<;预处理>;标签(RubyonRails)_Ruby On Rails_Ruby_Regex_Newline - Fatal编程技术网

Ruby on rails 换行符出错<;预处理>;标签(RubyonRails)

Ruby on rails 换行符出错<;预处理>;标签(RubyonRails),ruby-on-rails,ruby,regex,newline,Ruby On Rails,Ruby,Regex,Newline,我正在开发一个博客,一些非常烦人的事情发生在新行字符上(\n)。一切正常,除非我写了一篇包含预标记的文章,我的换行符会破坏缩进 如果我有这样的代码 <pre> <code> some code some code more code more code </code> </pre> 出于某种原因,post中保存在db字段中的换行符会导致pre标记中的内容缩进一两个制表符 我不知道它为什么这么做,但如果我做了类似的事情 d

我正在开发一个博客,一些非常烦人的事情发生在新行字符上(\n)。一切正常,除非我写了一篇包含预标记的文章,我的换行符会破坏缩进

如果我有这样的代码

<pre>
  <code>
    some code some code
    more code more code
  </code>
</pre>
出于某种原因,post中保存在db字段中的换行符会导致pre标记中的内容缩进一两个制表符

我不知道它为什么这么做,但如果我做了类似的事情

def remove_newlines(string)
   regexp = /<pre>\s?(.*?)\s?<\/pre>/
   code = regexp.match(string)
   code[1].gsub!(/\n/, "<br />")
end
string.gsub!(/\n/,“
”)
缩进已被删除,因此我知道这与\n有关。但是,我的问题是,有太多的换行符,格式太差了

然后我尝试用一个类似这样的方法捕获pre标记中的所有内容

<pre>
  <code>
    some code some code
    more code more code
  </code>
</pre>
def删除新行(字符串)
regexp=/\s?(.*)\s/
代码=regexp.match(字符串)
代码[1]。gsub!(/\n/,“
”) 终止
但我不能让它正常工作

有人知道我怎样才能解决这个奇怪的缩进问题,或者有什么关于这个问题的建议吗


谢谢

听起来您的模板引擎正在自动缩进
标记的内容。浏览器按原样呈现
标记内的空白(根据规范,它们应该如此)。这意味着,模板引擎为使HTML源代码更具可读性而添加的
中每行开头的空格也会在实际页面中呈现,这与HTML源代码中大多数其他位置的空格不同

因此,解决方案取决于模板语言

如果您正在使用HAML:


希望这有帮助。

听起来您的模板引擎正在自动缩进
标记的内容。浏览器按原样呈现
标记内的空白(根据规范,它们应该如此)。这意味着,模板引擎为使HTML源代码更具可读性而添加的
中每行开头的空格也会在实际页面中呈现,这与HTML源代码中大多数其他位置的空格不同

因此,解决方案取决于模板语言

如果您正在使用HAML:


希望这有帮助。

它将是这样的原始文本:“我的帖子\r\n\r\n”@rhino,“它将是这样的原始文本…”。不,请在您的问题中添加一些文本示例。您可以将其包装在
`标记中以保留格式,也可以稍微修改它以显示前导空格和尾随空格、回车符和换行符。剥离\r没有任何作用,但剥离\n起了作用@铁皮人,我可以复制和粘贴数据库中的代码,但它现在正在构建中,我没有真实的记录,只有与我在上面的评论中所说的一模一样的伪造记录@mu他们看起来肯定是tabsit,会是这样的原始文本:“我的帖子\r\n\r\n”@rhino,“会是这样的原始文本…”。不,请在您的问题中添加一些文本示例。您可以将其包装在
`标记中以保留格式,也可以稍微修改它以显示前导空格和尾随空格、回车符和换行符。剥离\r没有任何作用,但剥离\n起了作用@铁皮人,我可以复制和粘贴数据库中的代码,但它现在正在构建中,我没有真实的记录,只有与我在上面的评论中所说的一模一样的伪造记录@穆,他们看起来确实是塔布斯霍斯汀,看起来很神奇,啊,为什么我没想到哈姆????!!!!是的,我正在使用HAML,这解决了问题。作为一名前端开发人员,我知道代码和预处理是如何操作的,但无法理解WTF是如何进行的。非常感谢你的见解Jostein,这看起来太棒了,啊,为什么我没想到HAML????!!!!是的,我正在使用HAML,这解决了问题。作为一名前端开发人员,我知道代码和预处理是如何操作的,但无法理解WTF是如何进行的。非常感谢您的见解