2015-07-24 4 views
0

У меня есть несколько общих DSL-кода в ActiveAdmin; Я рассмотрел несколько способов совместного использования кода, некоторые из которых включали создание модуля, который я включаю в ресурс, и других включенных, добавив путь к инициализаторам Active Admin.Метод DRY для ActiveAdmin

Однако я обнаружил, что ничего не работает. Я думаю, что должен быть простой способ просто поделиться похожим кодом по всем ресурсам - и по коду он действительно DSL, включая Arbre и другой язык, специфичный для домена.

Вот виды вещей, которые я надеюсь разделить по всем направлениям:

index do 
    selectable_column 
    id_column 
    column :email 
    column :current_sign_in_at 
    column :sign_in_count 
    column :created_at 
    actions 
end 


filter :email 
filter :current_sign_in_at 
filter :sign_in_count 
filter :created_at 


menu false 

scope :active 
scope :inactive 
scope :all_items, :default => true 

    member_action :toggle_activate, method: :get do 
    ... 
    end 

Любая помощь будет высоко ценится. Я определенно хочу быть сухим кодером.

ответ

1

Как о включении следующей подмешать к классам:

module Foo 
    def self.included(base) 
    base.class_eval do 
     # your shared code here 
    end 
    end 
end 
Смежные вопросы