雷未定义方法`total_pages'
kaminari undefined method `total_pages'
使用 kaminari 时出现错误。
宝石文件:
# gem 'will_paginate', '~> 3.0.6'
# gem 'will_paginate-bootstrap'
gem 'kaminari'
lists_controller.rb
def index
if params[:tag]
@lists = List.tagged_with(params[:tag]).order(created_at: :desc).paginate(page:params[:page], per_page: 3 )
else
@lists = List.all.order(created_at: :desc)
end
end
我也是用户 .page params[:page].per(2)
关注 .order(created_at: :desc)
但不起作用
views/lists/index.html.erb
<%= paginate @lists %>
错误在这里
undefined method `total_pages' for #<List::ActiveRecord_Relation:0x007fa2303e3fa8>
Extracted source (around line #26):
</div>
</div>
<%= paginate @lists %>
<div class="container">
<div class="row">
<div class="col-md-8">
我正在关注一个关于 kaminari 的 railscasts 视频,但他们没有任何错误。
尝试分页:
List.tagged_with(params[:tag]).order(created_at: :desc).page(params[:page]).per(3)
您需要对这两个查询进行分页。我推荐这样的东西:
def index
if params[:tag]
@lists = List.tagged_with(params[:tag])
else
@lists = List.all
end
@lists = @lists.order(created_at: :desc).paginate(page:params[:page], per_page: 3 )
end
否则当params[:tag]
为nil时@lists
将不是分页对象
我有一个类似的问题,这是因为commontator gem 从will_paginate 引入了方法并覆盖了基础ActiveRecord class.
错误出现在 page_entries_info 方法的调用堆栈中,这似乎是两个库之间的通用方法名称。
要修复,您可以明确引用该方法:
于是查看代码:
<%= Kaminari::Helpers::HelperMethods.page_entries_info @events %>
<%= link_to "Next", path_to_next_page(@events) %>
<%= link_to "Prev", path_to_prev_page(@events) %>
并在初始化程序中 (initializers/kaminari_config.rb)
module Kaminari
module Helpers
module HelperMethods
extend ActionView::Helpers::TranslationHelper
module_function :page_entries_info
end
end
end
这是一个非常棘手的修复程序,但希望对您有所帮助。
尝试:
order(:nome).page page
为我工作
使用 kaminari 时出现错误。
宝石文件:
# gem 'will_paginate', '~> 3.0.6'
# gem 'will_paginate-bootstrap'
gem 'kaminari'
lists_controller.rb
def index
if params[:tag]
@lists = List.tagged_with(params[:tag]).order(created_at: :desc).paginate(page:params[:page], per_page: 3 )
else
@lists = List.all.order(created_at: :desc)
end
end
我也是用户 .page params[:page].per(2)
关注 .order(created_at: :desc)
但不起作用
views/lists/index.html.erb
<%= paginate @lists %>
错误在这里
undefined method `total_pages' for #<List::ActiveRecord_Relation:0x007fa2303e3fa8>
Extracted source (around line #26):
</div>
</div>
<%= paginate @lists %>
<div class="container">
<div class="row">
<div class="col-md-8">
我正在关注一个关于 kaminari 的 railscasts 视频,但他们没有任何错误。
尝试分页:
List.tagged_with(params[:tag]).order(created_at: :desc).page(params[:page]).per(3)
您需要对这两个查询进行分页。我推荐这样的东西:
def index
if params[:tag]
@lists = List.tagged_with(params[:tag])
else
@lists = List.all
end
@lists = @lists.order(created_at: :desc).paginate(page:params[:page], per_page: 3 )
end
否则当params[:tag]
为nil时@lists
将不是分页对象
我有一个类似的问题,这是因为commontator gem 从will_paginate 引入了方法并覆盖了基础ActiveRecord class.
错误出现在 page_entries_info 方法的调用堆栈中,这似乎是两个库之间的通用方法名称。
要修复,您可以明确引用该方法:
于是查看代码:
<%= Kaminari::Helpers::HelperMethods.page_entries_info @events %>
<%= link_to "Next", path_to_next_page(@events) %>
<%= link_to "Prev", path_to_prev_page(@events) %>
并在初始化程序中 (initializers/kaminari_config.rb)
module Kaminari
module Helpers
module HelperMethods
extend ActionView::Helpers::TranslationHelper
module_function :page_entries_info
end
end
end
这是一个非常棘手的修复程序,但希望对您有所帮助。
尝试:
order(:nome).page page
为我工作