我正在使用红宝石宝石ActiveAdmin。在index
页上,除了记录的索引列表外,我还想显示几个面板。
我有如下代码:
ActiveAdmin.register City do
belongs_to :country
index do
column :name
column :population
column :elevation
panel 'Languages in Country' do
ul do
country.languages.each do |language|
li language
end
end
end
end
end
想法是,当我转到http://localhost:8000/admin/countries/3/cities
时,将显示该国家的城市列表,在此表下方,将在单独的panel
中显示该国家的语言。 / p>
我遇到的问题是,当一个国家/地区没有城市时,语言面板也显示为 NOT (即使有语言)。
一个国家没有城市数据时如何显示语言面板?
谢谢
答案 0 :(得分:0)
子类并覆盖ActiveAdmin::Views::IndexList,类似于:
class IndexListWithCountryPanel < ActiveAdmin::Views::IndexList
def build(index_classes)
if current_filter_search_empty?
panel 'Languages in Country' do ... end
else
index_classes.each do |index_class|
build_index_list(index_class)
end
end
end
index as: IndexListWithCountryPanel do
... # as before
end
始终在IndexListWithCountryPanel中而不是在索引块中显示面板会更加干燥。您是否考虑过将国家/地区语言添加到侧边栏?免责声明:这是基于我对代码和文档的阅读,我自己还没有这样做。