Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.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 On Rails_Pagination_Liquid - Fatal编程技术网

Ruby on rails 钢轨液体分页

Ruby on rails 钢轨液体分页,ruby-on-rails,pagination,liquid,Ruby On Rails,Pagination,Liquid,我使用的将在液体外进行包装,效果良好。现在我尝试在液体视图中对集合进行分页。我发现了这一点,这使我走到了这一步 集合是在我的控制器中创建的,如下所示: collection_assign = object.items.collect {|x| x.to_drop} {% paginate items by 5 %} {% for item in items %} <p>{{ item.title }}</p> {% endfor %} {% endpaginate %}

我使用的将在液体外进行包装,效果良好。现在我尝试在液体视图中对集合进行分页。我发现了这一点,这使我走到了这一步

集合是在我的控制器中创建的,如下所示:

collection_assign = object.items.collect {|x| x.to_drop}
{% paginate items by 5 %}
{% for item in items %}
<p>{{ item.title }}</p>
{% endfor %}
{% endpaginate %}
to_drop方法将每个项目都抛出到drop表:

  def to_drop
    Drops::ItemDrop.new self
  end
我将指定附加到模板并使用模板渲染它们。没有paginate标记,一切都正常工作,因此数据被传递到liquid视图,for标记也正常工作。“paginate”标记也被注册和响应。但与paginate的合作如下:

collection_assign = object.items.collect {|x| x.to_drop}
{% paginate items by 5 %}
{% for item in items %}
<p>{{ item.title }}</p>
{% endfor %}
{% endpaginate %}
{%paginate items by 5%}
{items%%中的项的%s}
{{item.title}

{%endfor%} {%endpaginate%}
抛出一个错误:

Liquid::SyntaxError (Liquid syntax error: Syntax Error in 'paginate' - Valid syntax: paginate <collection> by <number>)
Liquid::SyntaxError(Liquid语法错误:“paginate”中的语法错误-有效语法:paginate by)

我认为这个错误与集合有关,它显然是一个数组。liquid需要什么样的收集类型?我如何将其传递到liquid模板?

如果有人遇到同样的问题,也许此解决方案也适用于您:

当我将分页对象传递给液体时,我发现will_paginate仍在工作,但它只显示了第一个“切片”。这是解决方案中非常重要的一步,因为现在我只需要传递特定的控制器,以允许will_paginate的URL可以访问。这样,通过在浏览器地址栏中键入分页链接(例如“?page=2”),可以手动访问分页链接

之后,我在特定数据库中创建了一个新列。此列包含必要页面的计算值。页数的值是在助手类中使用除法和模运算符计算的。helper类必须在所有可能影响页数的控制器操作中实现,以便更新数据库中的值

获取必要页数的值后,还可以将其作为对象属性传递给liquid。现在可以在液体中的for循环中从头开始手动生成链接

我想这是一个相当粗糙的方法,也许不是实现这一点的最顺利的方法,但最重要的是,它是有效的