レール:モデルの依存クラスの場所のためのベスト・プラクティスを?
-
21-08-2019 - |
質問
私はかなりよくに沿って移動するレールのアプリを持っていますが、私はこれをやっているという事実は、私自身は、いくつかの貧しい人々芝は最終的になぜあなたはこれを入れたのですか?これを見ると、あなたは一体何を考えていた」、言おうとしていることを意味しますここに?!?!」
どこが悪い、ごめん魂は、単一のモデルクラス以外のものによって使用されていない一連のクラスを見ることを期待するだろうということですか?もちろん、私はクラスTheModelとともにthe_model.rbでそれをチャック可能性があり、これは計画された二つのクラスを超えて拡張することがあります...
私はlibに考えたが、それは、世界のすべての人の見解を乱雑にする必要はありません....
ありがとうございます。
私の前任者に感謝します。
解決
あなたが複数の場所でそれらを必要とするまでthe_model.rb
でそれらを残します。あなたは不リファクタリングした場合、あなたはおそらく仕事ができる最も簡単なことをやっていません。 あなたはつもりではありません、それはを必要とする。
この時点で、一般的なパターンは、「懸念」用のディレクトリを作成することです。参照してください。 Jamisバックするまたは
他のヒント
一般的に:ファイルシステムの場所にクラス名を翻訳する際にRailsの命名規則に従ってください。 (つまり:FooHelper::Bar
でクラスfoo_helper/bar.rb
を保つ)
あなたは一度だけ使用し、モデルと同じファイルに保管している小さなヘルパークラスの例外を作ることができますが、それらは例外でなければなりません。 (しかし、逆もまた真である、単一行ファイルの1行の数千人を作成しないでください)
あなたの利点にモジュールやクラスの名前空間を使用してください。あなただけが使用する(とに依存して)されたヘルパークラスモデルを持っている場合は、モデルクラスの名前空間にそれらを入れます:
class TheModel::HelperClass
end
ファイル・システム内の位置がapp/models/the_model/helper_class.rb
される
そして、あなたのモデルに依存しない何かがおそらくまだ名前空間することができます。
module Bar
class Foo
end
end
bar/foo.rb
での生活はもちろんの
あなたはおそらくlib
へのモデルではないものを入れることを恐れてはならない - それは、このディレクトリがあるものだ。のためのの
私は、便利ながら懸念は、を言うだろうそれは複数のファイルにのシングルのクラスを分割する方法であり、あなたがそれをやっているようには見えません。
ので、本当に行くための正しい方法ではありません