sql >> データベース >  >> NoSQL >> Redis

オーム/Redisで動的フィールドを設定する

    attribute Ohm::Modelのクラスメソッド 名前付き属性のアクセサーメソッドとミューテーターメソッドを定義します:

    def self.attribute(name)
      define_method(name) do
        read_local(name)
      end
    
      define_method(:"#{name}=") do |value|
        write_local(name, value)
      end
    
      attributes << name unless attributes.include?(name)
    end
    

    したがって、attribute :fooと言うと 、これらのメソッドは無料で入手できます:

    def foo         # Returns the value of foo.
    def foo=(value) # Assigns a value to foo.
    

    sendを使用できます このようにミューテイタメソッドを呼び出すには:

    @ohm_obj.send((att + '=').to_sym, val)
    

    本当に@ohm_obj[att] = valと言いたい場合 次に、次のようなものをOhmObjに追加できます。 クラス:

    def []=(att, value)
        send((att + '=').to_sym, val)
    end
    

    そして、おそらくアクセサバージョンも対称性を維持したいと思うでしょう:

    def [](att)
        send(att.to_sym)
    end
    


    1. MongoDBコレクションからドキュメントのランダムサンプルを返す3つの方法

    2. ジェダイ、ジェダイ接続を取得できません:プールからリソースを取得できません

    3. Mongo Find()関数は_idを除外しません

    4. MongoDBGoドライバー入門