我已经关注了针对simle模型的ActiveAdmin中的重复部分。它有效,但代码看起来有点难看。 你能看一下它并帮我重构吗?
如果开始时间不同,我使用了类ActiveAdmin控制器变量,而不是实例。我没有找到任何漂亮的方法来实现这个功能。你可能知道吗?
module ActiveAdminSimpleMenu
def simple_menu_for(klass, options = {})
ActiveAdmin.register klass do
permit_params(*(klass.main_fields + (options[:permitted_params] || [])))
controller.class_variable_set(:@@permitted_params, options[:permitted_params])
controller.class_variable_set(:@@klass, klass)
controller do
def scoped_collection
permitted_params = self.class.class_variable_get :@@permitted_params
self.class.class_variable_get( :@@klass).includes(*(permitted_params.map(&:cut_id)))
end
end if options[:permitted_params]
index_for_main_fields klass
filter_for_main_fields klass
form_for_main_fields klass
end
end