我尝试使用来自一个表的数据生成表的列,该表存储用户重新排列列时创建的每个列的顺序。
例如,在我的property_grid.rb文件中,我尝试使用["Attribute 1", "Attribute 2", "Attribute 3"]
数组生成列。
["Attribute 1", "Attribute 2", "Attribute 3"].each do |v|
case v
when 'Attribute 1'
column(:attribute_1)
when 'Attribute 2'
column(:attribute_2)
when 'Attribute 3'
column(:attribute_3)
end
end
这在我第一次重新加载页面时效果很好,但是当属性数组变为["Attribute 3", "Attribute 2", "Attribute 1"]
时,它并没有改变。
如果我在property_grid.rb文件中添加一条注解或其他任何内容,那么它似乎可以工作。我不明白为什么只有在我手动向该文件中添加内容时它才能工作。知道为什么会发生这种情况吗?知道如何动态地更改这些列的位置吗?
2条答案
按热度按时间wfveoks01#
您需要使用
map
而不是each
方法。each
方法返回初始数组,map
返回块的结果polhcujo2#
您可以使用
:after
来指示栏的位置。请参阅范例:示例来自:https://github.com/bogdan/datagrid/blob/master/Readme.markdown#columns