4

私は Rails アプリをかなり順調に進めていますが、私がこれを自分でやっているということは、最終的には貧しい人々がこれを見て、「一体何を考えていたのですか? なぜこれをここに置いたの?! ?!」

1 つのモデル クラス以外には使用されていない一連のクラスをどこで期待しているのだろうか。明らかに、クラス TheModel と一緒に the_model.rb に入れることもできますが、これは計画されている 2 つのクラスを超えて拡張される可能性があります...

libも考えましたが、みんなの世界観をごちゃごちゃにする必要はありません…。

ありがとうございました。

先輩、ありがとうございます。

4

2 に答える 2

4

the_model.rb複数の場所で必要になるまで、それらをそのままにしておきます。不必要にリファクタリングを行うと、機能する可能性のある最も単純なことを行っていません。あなたはそれを必要としません

その時点で、一般的なパターンは、「懸念事項」用のディレクトリを作成することです。詳細については、Jamis Buck によるこのブログ投稿またはPeter Marklund によるこの投稿を参照してください。

于 2009-02-03T22:59:12.807 に答える
0

一般に、クラス名をファイルシステムの場所に変換するときは、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-- それがこのディレクトリの目的です。

心配事は便利ですが、実際には正しい方法ではありません。これは、単一のクラスを複数のファイルに分割する方法であり、それを行っていないようです。

于 2009-05-31T22:37:53.203 に答える