使用活动管理员在索引视图中删除列

时间:2019-11-29 10:14:35

标签: ruby-on-rails activeadmin

在这里,我已经在rails 6上使用了主动管理。考虑索引视图有将近5到10列。如果要自定义列,则意味着应该这样做。

index do column :name column :description column :released_year column :director column :producer column :artist actions end

好的。没问题。

除非,我的模型有将近50列。我想显示48列。当时我想描述这48列应该显示的内容。我的问题是,我们是否必须从索引视图中删除这两列,而不是编写必要的列。喜欢,

index do remove_column :created_at remove_column :updated_at end

4 个答案:

答案 0 :(得分:2)

如果您的模型称为模型,请尝试:

attributes_to_display = Model.new.attributes.keys - ['attribute_1', 'attribute_2']
index do
  attributes_to_display.each do |attribute|
    column attribute.to_sym
  end
  actions
end

答案 1 :(得分:0)

resource_columns为您处理关联,所以:

attributes = active_admin_config.resource_columns - [:attribute_1, :attribute_2]
index do
  selectable_column
  id_column
  attributes.each do |attribute|
    column attribute
  end
  actions
end

答案 2 :(得分:0)

这对我有用( exclude_columns = [:attribute_to_exclude_1, :attribute_to_exclude_2] index do selectable_column ModelName.attribute_names.each do |clmn| column clmn if not exclude_columns.include? clmn.to_sym end actions end 成为您的模特):

${Result}=    Remove String    Hello How are you    ${SPACE}

答案 3 :(得分:0)

上述解决方案对我有用,但它没有显示带有链接的关联对象,而只是显示了关联的对象 ID。就我而言,我只有一个关联对象,所以我是这样处理的


index do
    columns_to_exclude = ["url"]
    (Feature.column_names - columns_to_exclude).each do |c|
      if c != "car_model_id"
        column c.to_sym
      else
        column "car_model".to_sym
      end
    end

通过这种方式,您的关联对象行为得以保留,您可以从链接转到父对象。