Ruby 杰基尔-液体错误:can';t将fixnum转换为字符串

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> 正在

我正在使用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>
  • 正在使用
    .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>