两级深度belongs_to关联上的Active Admin过滤器

The*_*ter 4 ruby-on-rails activeadmin

说一个Person有很多House,House有很多Door.(所以Door有一个house_id和House有一个person_id领域).我在Active Admin中有一个门列表,其中我想要一个允许我选择一个人的过滤器,并向我显示该人所有房屋的所有门.

ActiveAdmin.register Door do
  filter :knob_color
  filter :is_open
  filter :has_window

  filter :house_person      # DOESN'T WORK
  filter :house_person_name # DOESN'T WORK
Run Code Online (Sandbox Code Playgroud)

该Person模型表有一个name领域,所以ActiveAdmin应该能够挑选起来.

我该怎么做呢?

UPDATE

根据要求,我的情况在模型中得到了改变.

# id:   integer
# name: string
class Person < ActiveRecord::Base
  has_many :houses
end

# id:        integer
# person_id: integer
class House < ActiveRecord::Base
  belongs_to :person
  has_many   :doors
end

# id:         integer
# house_id:   integer
# knob_color: string
# is_open:    boolean
# has_window: boolean
class Door < ActiveRecord::Base
  belongs_to :house
end
Run Code Online (Sandbox Code Playgroud)

ahm*_*eod 9

您需要注册person关联Door使用has_one关系house,然后您可以直接添加过滤器.

class Door < ActiveRecord::Base
  belongs_to :house
  has_one :person, through: :house
end

ActiveAdmin.register Door do
  filter :person
end
Run Code Online (Sandbox Code Playgroud)