ActiveAdmin关注重构

时间:2016-04-09 19:58:48

标签: ruby ruby-on-rails-4 refactoring activeadmin

我已经关注了针对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

0 个答案:

没有答案