問題タブ [mixins]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - モデルに混在するモジュールの初期化
私はこれを持っています:
この
Bullet のインスタンスを作成すると、モジュールの initialize メソッドが起動しますが、ActiveRecord エラーが発生します: ...activerecord-2.2.2/lib/active_record/attribute_methods.rb:268:in `read_attribute'
私の意図は、混合先のレコードの主キー値が必要なインスタンス変数を初期化することです。モジュール内の他のメソッドは、このインスタンス変数で動作します。
module included() コールバックもタスクに適合しません。そのコンテキストでは、self は AR レコードではなく Module であるためです。
これにはどのようにアプローチする必要がありますか?
ありがとう
python - ページのメタデータを抽出することは、多重継承をうまく利用できますか?
モデルインスタンスが表示されるWebページに関係する「meta_keywords」や「slug」などのフィールドを両方に含むモデルがいくつかあるのか、それらのページのメタデータ要素を分割することが賢明かどうか疑問に思っていましたPageMeta などの独自のクラスに変換し、他のモデルに多重継承を介してそれらのサブクラスを持たせますか?
ruby-on-rails - コントローラーで基本クラスのメソッドをオーバーライドする
非常に複雑なブラック ボックスをだまして、いくつかのフロートを別の方法で表示しようとしています (これは Gruff グラフ ライブラリであるため、これは画像にレンダリングされています)。
コンソールでは、これを貼り付けることができます:
そして、私は見るでしょう
しかし、同じコードをコントローラーに貼り付けると、
コントローラ内で Float.to_s を置換できないのはなぜですか? 「これを達成するためのより良い方法は何ですか?」という質問への回答も受け付けます。
scala - Scala で複数のトレイトを混合する
クイック ノート: チュートリアルScala for Java Refugees Part 5: Traits and Typesの例。
私が学生、労働者、低賃金、および若いという特性を持っているとします。
これらすべての特性を持つクラス ( instance ではない) CollegeStudentを宣言するにはどうすればよいでしょうか?
注:私は、1 つまたは 2 つの Traits を持つ CollegeStudent など、最も単純なケースを認識しています。
actionscript - AS3アプリケーションで[mixin]タグを使用するにはどうすればよいですか?
FlexBuilder3には次の2つのプロジェクトがあります。
1つのAS3ライブラリプロジェクト(SWCファイルを生成します)
1つのFlexアプリケーションプロジェクト(MXMLアプリケーション)
MXMLアプリケーションは、AS3ライブラリプロジェクト(Flexビルドパス)を参照します。ここまでは順調ですね。アプリケーションがAS3ライブラリを使用するときに、コードを自動的に実行したいと思います。[mixin]タグは、私が必要としていることを正確に実行する必要があります。
http://nondocs.blogspot.com/2007/04/metadatamixin.htmlの指示に従い、AutoQuickプロジェクトをチェックアウトしました。後者は、自動化フレームワークの使用法を示すAdobeによるサンプルプロジェクトです。このプロジェクトでは、[mixin]タグ(クラスAQAdapter)を使用しています。
例に従いましたが、コードが機能していません。staticinitメソッドは呼び出されません。ライブラリをコンパイラ引数リストに追加しましたが、どちらも機能しませんでした。
これを機能させるにはどうすればよいですか?
ruby-on-rails - DataMapperがミックスインと継承を使用するのはなぜですか?
だから私はこれについて興味があります:
DataMapperは、モデルにミックスインを使用します
アクティブレコードは継承を使用しますが
DataMapperがそのように選択した理由(またはARが選択しなかった理由)を誰かが知っていますか?
python - 基本テストクラスで定義されたクラス属性を見つけるにはどうすればよいですか?
データベースに対していくつかの統合テストを実行していますが、次のような構造にしたいと考えています。
このようにして、次のように SQL Server テストと Oracle テストを別々に実行できます。
または、次のようなすべての統合テスト:
ただし、鼻は基本クラスではなく、サブクラスの属性のみを検索するようです。したがって、次のようにテスト クラスを定義する必要があります。そうしないと、テストが実行されません。
これを維持するのは少し面倒です。これを回避する方法はありますか?1 つの基本クラスだけを扱う場合は、メタクラスを使用して、各クラスの属性を定義します。しかし、テスト クラス用のメタクラス、Oracle 用のメタクラス、SQL Server 用のメタクラスがあることに不安を覚えます。
ruby - 衛生的な Ruby mixin を作成するにはどうすればよいですか?
サードパーティ クラスに機能を追加する mixin モジュールを作成しているとします。明らかに、サードパーティのクラスとそのクライアントがアクセスできるようにしたいメソッドとインスタンス変数の一部です。これらは mixin モジュールの公開インターフェースを構成します。
しかし、他の特定のメソッドとインスタンス変数をカプセル化する必要があります。私がミックスしているクラスからそれらにアクセスできるようにしたくありません。特に、誤ってオーバーライド、シャドー、競合、またはその他の方法で mixee クラスのメソッドまたはインスタンス変数を妨害したくありません。現在存在している可能性があるもの、またはサードパーティが私がミックスしているクラスを変更した場合に将来作成される可能性があるもの。
このように mixin が「衛生的」であることを確認するには、どのような予防措置を講じる必要がありますか?
objective-c - Mixinsと比較したObjective-Cカテゴリ
とにかくObjective-Cカテゴリの概念はミックスインの概念に似ていますか?もしそうなら:類似点は何ですか?そうではありません:違いは何ですか?
ruby - Ruby継承とミックスイン
Ruby では、複数の mixin を含めることができますが、1 つのクラスしか拡張できないため、継承よりも mixin が優先されるようです。
私の質問: 役に立つように拡張/インクルードする必要があるコードを書いている場合、なぜそれをクラスにするのでしょうか? または別の言い方をすれば、なぜそれを常にモジュールにしないのですか?
クラスが必要な理由は 1 つだけ考えられます。それは、クラスをインスタンス化する必要がある場合です。ただし、ActiveRecord::Base の場合、直接インスタンス化することはありません。では、代わりにモジュールであるべきではなかったのでしょうか?