对于ActiveAdmin中的资源页面(当前是Rails3),我有一个列列表显示资源对象上单个属性的值列表,在视图模式下显示为列表中每个值的字符串行在编辑模式下,它是一个较大集合的复选框列表,用于选择值。这些值来自单个模型属性,该属性是作为文本字段存储在数据库中的序列化数组。
对于show
处理程序
show do |company|
attributes_table do
...
row 'Strategies', :strategy_codes do
table_for company.strategy_codes do
column do |code|
code
end
end
end
...
end
end
对于form
处理程序
form do |f|
...
f.inputs 'Strategies' do
f.input :strategy_codes, label: false, as: :check_boxes,
collection: f.object.available_strategy_codes
.collect { |l| ["#{l}",l]}.unshift(["Select All"]),
hint: 'Select the desired strategies',
input_html: { multiple: true }
end
...
f.actions
end
上述每一项都将strategy_codes的值显示为单列(即30行或更多行)。
在这两种情况下,对于显示和编辑,我想组织表的多个列而不是单个值列的值,因为值列表可以是30个项目或更多,它们是短值(5个字符) )。我希望能够指定它分布在2,3或4等列中,以便它是这个属性值的更短但更宽的多列显示。
这可以作为ActiveAdmin视图方法的修改或补充吗?
更新
我设法让show
处理程序为此工作“在多列中显示值列表”挑战:
row 'Strategies', :strategy_codes do
column_count = 4
row_count = (company.strategy_codes.count / column_count).ceil
table_for company.strategy_codes.in_groups_of(row_count).transpose do
(1..row_count).each_with_index do |c,i|
column do |code|
code[i]
end
end
end
end
由于我希望每个列在移动到下一列之前填满行,因此我转换了由in_groups_of
生成的数组。
我还没有太多运气但是试图让form
处理程序的复选框选项值的集合以相同的方式跨列显示。
我想知道通过注入一些css或javascript来尝试让客户端处理这个问题会更好。
如果我能够使form
checkboxes
解决方案工作没有“首先垂直填充列”功能,而是将每行填满,然后向下移动到下一行,我也很喜欢这种方法。
想法?
答案 0 :(得分:0)
我最终按照您的考虑使用CSS进行了此操作。
active_admin.scss
void FCFS() {
Scheduler data;
printf("Retrieved value: %d\n", data.processes[0][0]);
// prints 3
...
}