为什么Post.page(1).total_pages会导致:
Post.page(1).total_pages
undefined local variable or method `total_pages' for #<ActiveRecord::Relation:0x00000006a95230>
但是
Post.scoped.page(1).total_pages
工作正常。奇怪的是,
Post.paginate(:page => 1).total_pages
工作正常。我查看了Github上的代码(https://github.com/mislav/will_paginate/blob/master/lib/will_paginate/active_record.rb),我可以看到为什么paginate工作(因为它首先调用limit ...它返回一个活动的记录关系,就像scoped一样)。我觉得它与这段代码有关
rel = scoped.extending(RelationMethods)
我想我不明白这些限制返回的活动记录关系与scoped.extending(RelationMethods)之间的区别。有什么想法吗?
答案 0 :(得分:1)
仅在使用rails_admin gem时才会发生这种情况。它在带有will_paginate 3.0.2的新Rails 3.1.1应用程序中运行良好。
Rails管理员可能正在对页面方法做些什么,虽然我不确定究竟是什么。