Rails 4, Amoeba Gem внутри концерна

Можно ли использовать драгоценный камень Amoeba в Концерне? В настоящее время я получаю эту ошибку при попытке запустить ее в Концерне:

undefined method `amoeba' for Amoeba:Module

Тот же самый код прекрасно работает в реальных моделях, но я хочу высушить его, поскольку он очень похож между двумя моими моделями... Вот как выглядит Концерн:

module Amoeba
  extend ActiveSupport::Concern

  amoeba do
    enable
    customize(lambda { |original, clone|
      clone.uid        = SecureRandom.hex(2)
      clone.activities = []

    if original.class.name == "Widget"
      clone.bookings   = []
    end

    if orignal.class.name == "Flotsam"
      clone.remaining  = 100
      if original.expiration.past?
        clone.expiration = Date.today + 5.years
      end
    end

    if original.icon.present?
      clone.icon = original.icon
    end
    if original.pdf.present?
      clone.pdf = original.pdf
    end
  })
end

1 ответ

Решение

Амеба - это метод класса. С ActiveSupport::Concern он должен вызываться внутри включенного блока

module Amoeba
  extend ActiveSupport::Concern
  included do
    amoeba do 
    ....
    end
  end

ActiveSupport:: Концерн

Другие вопросы по тегам