如何从Rails Admin的搜索过滤器中排除字段?

问题描述 投票:0回答:1

[当我用'test'搜索用户时,由于category是整数,它给了我Postgres错误。

Start GET“ / admin / user?model_name = user&utf8 =%E2%9C%93&query = test”对于:: 1在2020-02-21 17:43:44 -0500通过RailsAdmin :: MainController#index作为HTML进行处理参数:{“ model_name” =>“ user”,“ utf8” =>“√”,“ query” =>“ test”}ActiveRecord :: StatementInvalid-PG :: InvalidTextRepresentation:错误:整数的无效输入语法:“ test”第1行:... users.name ILIKE'%test%')或(users.category IN('test'))O ...

我没有category作为模型的配置字段。

class User < ApplicationRecord
  include RailsAdminUser

module RailsAdminUser
  extend ActiveSupport::Concern
  included do
    rails_admin do
      list do
        fields :id, :email, :name, :company, :sign_in_count, :current_sign_in_at, :current_sign_in_ip
      end

我找不到要从其要搜索的字段中排除category的方法。我可以将该字段保留在搜索范围之外。似乎用每个字段构造一个查询。我试图隐藏category字段,但是没有用。

  list do
    configure :category do
      hide
    end

字段文档:https://github.com/sferik/rails_admin/wiki/Fields

完整文档:https://github.com/sferik/rails_admin/wiki

rails_admin 1.4.2


我尝试过

  list do
    field :category do
      visible false
      filterable false
    end

但是没用。

ruby-on-rails rails-admin
1个回答
0
投票

以前的开发人员有

config\initializers\rails_admin_reload.rb
Rails.application.config.to_prepare do
  RailsAdmin::ApplicationController.class_eval do
    before_action :reload_rails_admin, if: Rails.env.development? # Reloading RailsAdmin Config Automatically

    def reload_rails_admin
      RailsAdmin::Config.reset

      load("#{Rails.root}/config/initializers/rails_admin.rb")

我添加了

class User < ApplicationRecord
  rails_admin do
    xxx
  end

module RailsAdminUser
  extend ActiveSupport::Concern
  included do
    rails_admin do
      xxx

甚至没有抛出错误,因此甚至没有读取那些文件或方法。我假设他们想在任何更改时重新加载Rails Admin配置,但是它似乎也丢弃了所有模型配置!我注释了before_action,它起作用了。

我也添加了

  list do
    field :category do
      visible false
      searchable false
    end

Rails Admin似乎在缓存模型的配置,因此每当更改配置(例如searchable true => false)时,都必须重新启动服务器。非常烦人。

© www.soinside.com 2019 - 2024. All rights reserved.