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应该能够挑选起来.
我该怎么做呢?
根据要求,我的情况在模型中得到了改变.
# 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)
您需要注册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)
| 归档时间: |
|
| 查看次数: |
1555 次 |
| 最近记录: |