私はActiveSupport :: Concernを使用していますが、これらのファイルを/ app/model/concernフォルダに整理して一般的な懸念事項を述べる方法はいくつかありますが、私はいくつかのアプローチを見ており、いくつかの長所と短所Rails 3 - モジュールまたはクラスに関する懸念
class Alert < ActiveRecord::Base
include Shareable
/アプリ/モデル/アラートのフォルダに懸念
class Alert
module Shareable
extends ActiveSupport::Concern
または
module Alert::Shareable
extends ActiveSupport::Concern
01を見たいのですが、特定のモデルへの懸念
または
module Alert
module Shareable
extends ActiveSupport::Concern
これを行うか、私は唯一のモジュールまたはクラスモジュールを使用する必要がある場合の最善の方法があるかどうか、本当にわかりません。私はそれが自明であることを知っています、そして、彼らはすべて働くようですが、組織的に最良のアプローチがあるかどうかは分かりませんでした。ありがとう!
オースティン私はすべての3つを使用し見てきたポイントに得てとする方法があった場合は常に100%ではないでしてきた、ありがとうございました。。!私は今、大規模なリファクタリングをしています。私は実際に物事の内容を理解するのが大好きです。あなたの助けをもう一度感謝します! – bokor
問題ありません。クラスとモジュールの両方を定数と考えるだけで意味論的に意味のあるものに合わせて入れ子にすることができます。クラスはモジュールの下に置くことができ、その逆も可能です。最終的に他のものが共有可能であることが理にかなったら、それを名前空間の先頭に移動します。意味、Alertの下にネストしないでください。乾杯。 – Austin
合意しました。第2のスタイル、つまりAlert :: Shareableモジュールを使用する方が簡単でした。最初の、つまりクラスモジュールを使用すると、アラートの複数のクラス定義によってツールが混乱している場所に移動します。たとえば、Annotate gemはスーパークラスの不一致エラーを示し、Alertモデルに注釈を付けません。私はまた、devのコンソールにいくつかの問題があった。つまり、両方のスタイルは、実行中のRailsアプリケーションで正常に動作します。 – Alric