【问题标题】:Scopes as filters in rails_admin范围作为 rails_admin 中的过滤器
【发布时间】:2013-11-01 21:20:38
【问题描述】:

我在我的应用程序中使用 rails_admin。我的模型上有一些范围,以下是一个示例:

class User < ActiveRecord::Base

  scope :unconfirmed, where('confirmed_at IS NULL')

end

是否可以在 rails_admin 中作为过滤器访问这些范围?就像您可以在活动管理员中一样。就像在用户部分的某处添加一个按钮。

谢谢

【问题讨论】:

  • 你想做什么?这正是你的做法

标签: ruby-on-rails ruby scope rails-admin


【解决方案1】:

我知道这是一个非常古老的问题,但有人将我重定向到此线程。 您可以通过如下配置 rails_admin 轻松实现此目的

# /config/initializers/rails_admin.rb
config.model User do
    list do
        scopes [nil, :unconfirmed]
    end
end

这将在标记为 AllUnconfirmed 的列表顶部插入两个选项卡,并在各个选项卡中过滤记录。单击这些选项卡将触发应用您的自定义范围的查询

希望对你有帮助。

【讨论】:

    【解决方案2】:

    我通过添加自定义 rails_admin 操作成功地做到了这一点。

    更多详情:https://github.com/sferik/rails_admin/wiki/Custom-action

    例如:

    # in lib/rails_admin/unconfirmed.rb
    
    require 'rails_admin/config/actions'
    require 'rails_admin/config/actions/base'
    
    module RailsAdminUnconfirmed
    end
    
    module RailsAdmin
      module Config
        module Actions
    
          class Unconfirmed < RailsAdmin::Config::Actions::Base
            RailsAdmin::Config::Actions.register(self)
    
            register_instance_option :controller do
              Proc.new do
                @objects = User.unconfirmed
                render "index"
              end
            end
    
            register_instance_option :collection do
              true
            end
          end
        end
      end
    end
    

    关键是它是一个“收集”动作。然后将其添加到 rails_admin 设置:

    # in config/initializers/rails_admin.rb
    # require File.join(Rails.root, "lib", "rails_admin", "unconfirmed")
    
    RailsAdmin.config do |config|
      config.actions do
        # root actions
        dashboard
        # collection actions
        index
        unconfirmed do
          only 'User'
        end
      end
      # snip!
    end
    

    此新操作将出现在用户模型的索引级别。

    【讨论】:

    猜你喜欢
    • 2015-03-06
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 2015-03-03
    • 1970-01-01
    相关资源
    最近更新 更多