这是错误和我的代码。我正在使用Kaminari
Error: undefined method `model_name' for #<Array:0x0000001d5abeb0>
73: <%= page_entries_info(@communities).html_safe %>
查看
<%= page_entries_info(@communities).html_safe %>
社区控制器
更新*这就是我现在提取的方式
@search = Community.search do
fulltext params[:search]
with(:location_id, params[:location]) if params[:location].to_i >0
with(:type_id, params[:type]) if params[:type].to_i >0
order_by :cached_votes_up, :desc
paginate :page => params[:page], :per_page => 10
end
@communities = @search.results
答案 0 :(得分:2)
您的翻译出现问题:
"%{total} total records. Displaying %{first} - %{last}"
当你调用这个翻译时,它期待3个参数:
变量total
,first
和last
,但“你”只给出这两个变量:entry_name
&amp; count
您能否提供有关page_entries_info
方法的更多信息?
正如您所评论的那样,https://github.com/amatsuda/kaminari/blob/master/lib/kaminari/helpers/action_view_extension.rb#L102 第102-109行: 您需要在.yml翻译文件中包含以下内容:
en:
helpers:
page_entries_info:
one_page:
display_entries: "%{count} total records for %{entry_name}."
more_pages:
display_entries: "%{total} total records. Displaying %{first} - %{last}"
答案 1 :(得分:2)
如果您一起使用 kaminari 和 will_paginate ,您肯定会遇到此错误。简而言之, kaminari 和 will_paginate 彼此不兼容。
如果您使用rails_admin
(使用kaminari进行分页)并使用will_paginate
,则需要将以下代码添加到config目录下的其中一个初始值设定项中,或者您可以创建一个新的文件,假设用名称'will_paginate'添加代码,并将其放入初始化程序目录。
if defined?(WillPaginate)
module WillPaginate
module ActiveRecord
module RelationMethods
def per(value = nil) per_page(value) end
def total_count() count end
end
end
module CollectionMethods
alias_method :num_pages, :total_pages
end
end
end