ActiveAdmin:基于Active Scope修改索引表

时间:2012-12-12 07:00:40

标签: ruby-on-rails activeadmin

假设我有一个ActiveAdmin模型,其中包含两个范围:

ActiveAdmin.register Book do

  scope :all, default: true
  scope :smith #all books by author 'smith'

  index do
    column :title
    column :published_year
    column :author
  end
end

当用户选择'smith'范围时,我不想/需要'author'列。

那么有没有办法访问当前作用域并只在其中一个作用域中显示作者列?我想在这个例子中我可以使用自定义视图并检查数据的实际内容,但我希望有一种更简单,更好的方法。

2 个答案:

答案 0 :(得分:21)

你可以尝试类似的东西

index do
    column :title
    column :published_year
    column :author unless params['scope'] == 'smith'
  end

答案 1 :(得分:4)

您还可以访问@current_scope对象,并且可以执行@ current_scope.scope_method以获取基础范围方法