Ruby 杰基尔-液体错误:can';t将fixnum转换为字符串
我正在使用ruby 1.9.1;我的页面使用paginator对象:Ruby 杰基尔-液体错误:can';t将fixnum转换为字符串,ruby,jekyll,liquid,Ruby,Jekyll,Liquid,我正在使用ruby 1.9.1;我的页面使用paginator对象: <li><a href="{{site.paginate_path | replace: ':num', page}}">{{page}}</a></li> 在这两种情况下,我得到: <li><a href="Liquid error: can't convert nil into String">2</a></li> 正在
<li><a href="{{site.paginate_path | replace: ':num', page}}">{{page}}</a></li>
在这两种情况下,我得到:
<li><a href="Liquid error: can't convert nil into String">2</a></li>
正在使用.to\u i
或.to\u s
方法来解决我的问题。为什么不起作用?你知道我如何调试这个错误吗
非常感谢你的帮助 好吧,这是误导。这个方法是错误的,但是Ruby 2+忽略了愚蠢的错误:)这是个好消息
只要问问你想知道什么,也许我们可以帮你解决你所指的问题。因此,使用liquid gem的2.5.2+版本应该可以解决这个问题。您想要的输出是什么?您尝试的是用字符串页替换页码。理论上,这将导致使用
pagepage
而不是page2
站点。paginate\u路径
不包含页码。我试图用页面
变量的内容替换它;我的预期结果是page2
。但是replace':num',page
将:num
的出现替换为page
page2
已经是使用Jekyll进行分页的标准格式。由于它适用于ruby 2+,因此,replace
似乎使用了page
变量的内容,而不是page
作为字符串。无论如何,它并没有解释错误无法将fixnum转换为字符串
或者我如何调试它,因为我甚至没有得到页面
,而是得到了一个错误。我仍然没有得到您的用例。你为什么要这么做?非常感谢,可能正是这样。正如我所说,我很难更新任何东西(我使用的是默认的debian软件包,而不是gems)。但我在@kleinfeund评论之后找到了一个解决方法:
<li><a href="{{site.paginate_path|replace: ':num', page.to_i}}">{{page}}</a></li>
<li><a href="{{site.paginate_path|replace: ':num', page.to_s}}">{{page}}</a></li>
<li><a href="Liquid error: can't convert nil into String">2</a></li>