モデルに特有の機能のサブセットに関する懸念を分離することを検討しています。 私はそれが一定のModelNameを自動ロードしながら、検出された次のエラーモデル名に基づいた名前空間のネームスペース
循環依存につながるサーバーを起動しようとすると、私は、hereを参照し、しかし、このパターン
module ModelName::ConcernName extend ActiveSupport::Concern included do # class macros end # instance methods def some_instance_method end module ClassMethods # class methods here, self included end end
に従っている:: ConcernName
を
私は、モデルの一部のサブセット関数について懸念を抱く最善の方法が何であるか疑問に思っています。
編集
モデルコードの提供: パス:アプリ/モデル/ rent.rb
を今私は私のモデルのロジックをチェックするのがたくさんある
class Rent < ActiveRecord::Base
def pricing_ready?
# check if pricing is ready
end
def photos_ready?
# check if photo is ready
end
def availability_ready?
# check if availability setting is ready
end
def features_ready?
# check if features are set
end
end
私が欲しいですそれを分離するために
class Rent < ActiveRecord::Base
include Rent::Readiness
end
と名前空間 パスで懸念を整理する:私はちょうどapp/models/concerns/rent_readiness.rb
どのようにこの問題に取り組むべきですか? –
最初に、Railsの懸念パターンは、あらゆる懸念がどのモデルでも利用できるように設計されています。これを達成するためのreadlinesの懸案事項を更新することで、最初に名前空間を指定する必要がなくなります。それ以外の場合、これが本当にRentモデルにのみ関連するロジックであれば、私はおそらく/ libに移動してRentReadlinesという名前に変更します(それでも構文拡張を使用することができます) – maniacalrobot
移動の理由それはlibに? –