ruby-on-rails 无法动态更改列位置(Datagrid Rails gem)

idv4meu8  于 2022-11-19  发布在  Ruby
关注(0)|答案(2)|浏览(118)

我尝试使用来自一个表的数据生成表的列,该表存储用户重新排列列时创建的每个列的顺序。
例如,在我的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文件中添加一条注解或其他任何内容,那么它似乎可以工作。我不明白为什么只有在我手动向该文件中添加内容时它才能工作。知道为什么会发生这种情况吗?知道如何动态地更改这些列的位置吗?

wfveoks0

wfveoks01#

您需要使用map而不是each方法。each方法返回初始数组,map返回块的结果

polhcujo

polhcujo2#

您可以使用:after来指示栏的位置。请参阅范例:

column(:activated, :header => "Active", :order => "activated", :after => :name) do
  self.activated?
end

示例来自:https://github.com/bogdan/datagrid/blob/master/Readme.markdown#columns

相关问题