Rails3 - will_paginate插件奇怪的输出

时间:2010-04-09 08:52:27

标签: ruby-on-rails will-paginate

我在应用程序中使用了will_paginate插件,但是当我对资源进行分页时,它只是将HTML作为文本吐出,不提供指向下一页等的链接。

当我手动输入该插件正在运行的网址时,它不会使<%= will_paginate @products %>成为下一个1 2 3 ...最后一个

等链接

这是输出

<span class="disabled prev_page">&amp;laquo; Previous</span> <span class="current">1</span> <a href="/products?page=2" rel="next">2</a> <a href="/products?page=2" class="next_page" rel="next">Next &amp;raquo;</a>

控制器:     def index

@products = Product.all.paginate :per_page => 5, :page => params[:page]
@product_categories = ProductCategory.find(:all)
respond_to do |format|
  format.html # index.html.erb
  format.xml  { render :xml => @products }
end

视图

<%= will_paginate @products %> 
<%= will_paginate %> #for some reasons this works too

4 个答案:

答案 0 :(得分:2)

source 'http://rubygems.org'

gem 'rails', '3.0.0.beta2'
gem "will_paginate", '3.0.pre' 

如果遇到与haml相关的麻烦,我们会使用该版本:

gem 'haml', '3.0.2'

答案 1 :(得分:2)

will_paginate现在位于此位置:
gem'will_paginate',: git =&gt; 'git://github.com/mislav/will_paginate.git',: branch =&gt; “Rails3中”

更新您的gemfile

答案 2 :(得分:1)

我认为原因是rails3逃脱html的方式以及will_pagiante被转义的原因。

要解决此问题,首先需要获取正确的gem,因为插件无法正常工作,因此添加gem 'agnostic-will_paginate', :require => 'will_paginate'并在位于rails3项目的app文件夹中的新gem文件中完成。

之后,您需要阻止rails使用raw转义will_paginate,这样就可以了     <%=raw will_paginate @products %>这是<%=h will_paginate @products %>的反对意见,其在rails3中等同于<%= will_paginate @products %>

答案 3 :(得分:0)

将与GITHUB签订合同。此存储库不再更新。 建议您安装gem而不是Rails插件:

gem install will_paginate

再试一次