【问题标题】:Rails 4, Amoeba Gem inside a ConcernRails 4,关注中的变形虫宝石
【发布时间】:2014-07-13 11:24:44
【问题描述】:

是否可以在关注点中使用 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

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4.1 activesupport-concern amoeba-gem


    【解决方案1】:

    amoeba 是一个类方法。使用 ActiveSupport::Concern 应该在包含的块中调用它

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

    ActiveSupport::Concern

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      • 2014-05-03
      • 1970-01-01
      • 2013-08-30
      • 2015-08-31
      相关资源
      最近更新 更多