假设如下:
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
会导致索引块的执行上下文发生变化,而新的执行上下文没有索引方法。
无论如何,我该如何解决这个问题?
答案 0 :(得分:1)
好吧,所以我是对的,执行上下文从标准索引变为IndexAsSortable
因此我错误地认为相同的方法会存在,但它们不存在,因此像列等等不存在。