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