0
我正在使用功能標誌使用flip gem的Rails項目。我們都有一個要素類中,你可以聲明要使用不同的功能標誌,通過在「包含」方法中評估模塊化類級方法調用
# app/models/feature.rb
class Feature < ActiveRecord::Base
extend Flip::Declarable
strategy Flip::DeclarationStrategy
feature :ivans_feature_A
feature :ivans_feature_B
feature :ivans_feature_C
feature :kramers_feature_X
feature :kramers_feature_X
end
隨着項目的發展,所以做的,我們已經有了在這個文件中聲明的特徵標誌的數量。一位同事建議我們將相關的特徵聲明分解成單獨的模塊來組織事物。
我發現了一種方法來做到這一點,但它不是我見過的模式,所以我不知道是否有更標準的方法。我定義的功能,每串命名空間模塊,我想組合到一起:
應用/型號/功能/ ivans_features.rb
module Features::IvansFeatures
def self.included(base)
base.feature :ivans_feature_A
base.feature :ivans_feature_B
base.feature :ivans_feature_C
end
end
應用/型號/功能/ kramers_features.rb
module Features::KramersFeatures
def self.included(base)
base.feature :kramers_feature_X
base.feature :kramers_feature_Y
end
end
...並讓他們參與特徵模型:
# app/models/feature.rb
class Feature < ActiveRecord::Base
extend Flip::Declarable
strategy Flip::DeclarationStrategy
include Features::IvansFeatures
include Features::KramersFeatures
end
是很奇怪混合模塊爲了使用included
回調在類上運行一些方法調用的唯一目的而進入類中?
偉大的作品,謝謝 – ivan