Rails Administrate gem:如何按"发布于"对记录进行排序?



我对Ruby on Rails的管理宝石非常陌生。 我无法按"发布于"对帖子进行排序/排序。记录似乎按其 ID 而不是published_at日期排序,我怎样才能使其工作?

请参阅Heroku的示例应用程序: https://administrate-prototype.herokuapp.com/admin/blog/posts

提前致谢

您正在寻找Model.order函数,以下是文档: https://guides.rubyonrails.org/active_record_querying.html#ordering

如果您有一个名为Post的模型,在控制器函数show或您正在使用的任何其他函数中定义它时,您可以获取如下所示的记录,以便按published_at

排序
Post.order(published_at: :desc) # ActiveRecord ordering
# OR
Post.sort_by(&:published_at) # pure Ruby sorting implementation

如果您总是希望它按published_at排序,您可以使用default_scope的Post如下所示的轨道 -

default_scope { order(published_at: :desc) }

这很容易,您需要修改request.query_parameters而不是params来完成您的工作。


这是一个例子

# app/controllers/admin/users_controller.rb
# frozen_string_literal: true
module Admin
class UsersController < Admin::ApplicationController
before_action :default_params
def default_params
request.query_parameters[:user]             ||= {}    # change :user --> your resource
request.query_parameters[:user][:order]     ||= :id   # your field
request.query_parameters[:user][:direction] ||= :desc # your direction
end

相关内容

  • 没有找到相关文章

最新更新