【发布时间】:2014-05-15 23:10:30
【问题描述】:
我正在使用 jekyll 和 ruby 1.9.1;我的页面使用分页器对象:
<li><a href="{{site.paginate_path | replace: ':num', page}}">{{page}}</a></li>
给我以下:
<li><a href="Liquid error: can't convert fixnum into String">2</a></li>
但是 jekyll build 不会产生任何错误。当我尝试使用 ruby 2.1.2 时,没有发生此错误(但我不想更新到 ruby 2+,除非真的没有其他解决方案)。 p>
我尝试添加.to_i 或.to_s,但我并不真正了解它是如何工作的,而且我仍然遇到一些错误;我尝试了以下方法:
<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>
正在使用.to_i 或.to_s 来解决我的问题。为什么它不起作用?有什么想法可以调试这个错误吗?
非常感谢您的帮助!!
【问题讨论】:
-
你想要的输出是什么?您正在尝试用字符串页面替换页码。从理论上讲,这将导致使用
pagepage而不是page2。 -
site.paginate_path不包含页码。我正在尝试将其替换为page变量的内容;我的预期结果是page2。 -
但是
replace ':num', page将:num的出现替换为page。page2已经是 Jekyll 分页的标准格式。 -
因为它适用于 ruby 2+,似乎
replace使用的是page变量的内容,而不是page作为字符串。无论如何,它并没有解释错误can't convert fixnum into String或我如何调试它,因为我什至没有得到pagepage,而是出现了错误。 -
我仍然没有得到你的用例。你为什么要达到这个目标?