0

这是错误和我的代码。我正在使用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
4

2 回答 2

2

您的翻译有问题:

"%{total} total records. Displaying %{first} - %{last}"

当您调用此翻译时,这里需要 3 个参数: variables total,但“您”只给出这 2 个变量:&firstlastentry_namecount

您能否提供有关该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}"
于 2013-01-25T14:52:43.190 回答
2

如果你同时使用kaminariwill_paginate,你肯定会遇到这个错误。简而言之,kaminariwill_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
于 2013-01-25T14:55:23.637 回答