第一次海报。我正在尝试使用 Ransack gem 和 Kaminari 对用户表进行排序以进行分页。当我使用名称、ID 等时,排序有效,但当我尝试与posts_count 关联时,排序中断并且不起作用。注意:在视图中,'u.posts.count' 工作正常。我已经在用户模型中尝试了自定义范围,并为搜索参数创建了自定义对象,但似乎没有任何效果。我认为我在默认范围或@search 对象没有数据时遇到了问题。需要帮忙!
以下是一些相关的片段:
模型/用户.rb
has_many :posts, :dependent => :destroy
模型/post.rb
belongs_to :user
default_scope :order => 'post.created_at DESC'
控制器/users_controller.rb
def index
@title = "User Index"
@search = User.search(params[:q]) # Ransack
@total_users = User.all.count
# .per(10) is the per page for pagination (Kaminari).
@users = @search.result.order("updated_at DESC").page(params[:page]).per(10) #This displays the users that are in the search criteria, paginated.
end
意见/用户/index.html.erb
..
<%= sort_link @search, :posts_count, "No. of Posts" %> #Sort links at column headers
..
<% @users.each do |u| %> #Display everything in the table
<%= u.posts.count %>
<% end %>