私はRuby on Rails 3.2.2を使用しています。私はモジュールを実装しており、RoR ActiveSupport::Concern機能を使用してクラスに含めています。モジュールが含まれているクラスのクラスコンテキストで実行されるブロック作成コードがincluded do ... end
で利用可能になります。`include do ... end`ブロックには何を含めるべきですか?
私の疑いがある:私はincluded do ... end
ブロックに含める何をしていないでしょうか?それは、例えば、次のような "一般的な"/"良い"練習ですか?
module MyModule
extend ActiveSupport::Concern
class MyModuleClass
attr_accessor :attr1, :attr2, :attr3
def initialize(attrs)
@attr1 = attrs[:attr1]
@attr2 = attrs[:attr2]
@attr3 = attrs[:attr3]
end
end
included do
@my_module_class = MyModuleClass.new(some_attrs)
end
end
よりは、BTW MyModule
(のを含むクラスの属性として利用できる@my_module_class
変数になります:私は以来MyModule
にのみ内部@my_module_class
が「見える」ようにしたいと思いますそのモジュールでのみ使用されることを意図しています)?上記のコードのincluded do ... end
ブロックでインスタンス化しようとしているような状況を処理する方法に関するいくつかの「高度な」例やチュートリアルはありますか?何について助言していますか?
ありがとうございますが、「主な」質問は「含まれているdo ... end'ブロックにはどうしたらいいですか?私の場合に*、例えば*を関連付ける。それは私にとって非常に重要であっても、残りは「もっと」です。しかし、私は 'MyModuleClass'のすべてのインスタンスを' MyModule'のインスタンスにしたいのではなく、それらを 'MyModule'の内部でのみ利用できるようにします。さらに、モジュールがクラスに含まれることが意図されているので、クラス定義内の 'include MyModule'ステートメントは暗黙的/明白です。 – user12882
"私はどうしたらいいですか"という質問はあまりにも漠然としていますが、質問している問題を解決しようとしている私の「編集1」を見てください。 –