active_admin-sortable_tree在尝试使用它时会导致错误

时间:2017-10-11 10:04:19

标签: ruby-on-rails ruby activeadmin

假设如下:

ActiveAdmin.register Section do
  menu :label => "Sections used in the menu"
  menu :parent => "CMS", priority: 1
  permit_params :name,:section_type, :visible,sections: [], sections_id: []

  sortable tree: true,
           sorting_attribute: :position,
           max_levels: 1,
           collapsible: true

  index as: :sortable do
    selectable_column
    id_column

    column :name
    column :section_type
    column :visible do |section|
      section.visible ? status_tag("yes",class: :ok) : status_tag("no")
    end
    actions
  end
end

需要它,section.rb:

class Section < ActiveRecord::Base

  belongs_to :parent, class_name: self.to_s, foreign_key: 'section_id'
  has_many :children, class_name: self.to_s, foreign_key: 'section_id'

  scope :roots, -> {where(section_id: nil)}
end

我收到以下错误:

undefined local variable or method `selectable_column' for "                  <div class=\"index_as_sortable\"></div>\n":ActiveAdmin::Views::IndexAsSortable

如果我删除as: :sortable,这就消失了,但这当然不会起作用(显然我不能使用可排序的树)。

我猜错了,因为做as: :sortable会导致索引块的执行上下文发生变化,而新的执行上下文没有索引方法。

无论如何,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

好吧,所以我是对的,执行上下文从标准索引变为IndexAsSortable因此我错误地认为相同的方法会存在,但它们不存在,因此像列等等不存在。