rails_admin gem过滤器,带has_many_through关联

时间:2017-06-06 12:37:33

标签: rails-admin

在我的申请中

  

虽然category_has_products

,但产品有很多类别      

通过category_has_products

,类别有很多产品

最初我用过

at product.rb

default_scope { includes(:brand, :categories) }

并在rails_admin配置中将其设置为

field :categories, :string do
 searchable [{Category => :name}]
end  

这就像一个魅力。由于has_many_through(其他使用产品详细信息的页面受到影响),这导致性能问题

所以我从产品中删除了default_scope。

之后我正在

PG::UndefinedTable: ERROR:  missing FROM-clause entry for table "categories"

关于如何预加载类别的任何想法?

注意:rails_admin gem版本为0.8.1,但我无法更新到最新版本1.X.X

1 个答案:

答案 0 :(得分:0)

我找到了答案

in product.rb

scope :include_categories, -> {includes(:categories)}
class << self
  alias_method :all_products, :include_categories
end  

admin_product_config.rb

from
    scopes %i[all brandless unmatched matched ignored fresh diy_only]
to
    scopes %i[all_products brandless unmatched matched ignored fresh diy_only]

添加过滤器选项

  field :categories, :string do
    searchable [{Category => :name}]
  end      
  configure :categories do
    hide
  end 

谢谢@ jxpx777 https://github.com/sferik/rails_admin/issues/1348#issuecomment-39373394