0

誰でも以下の簡単なステートメントを説明できますか

@object ||= ::Tablename.where (:fieldname => value ).first 

それはどういう意味で、なぜテーブル名||と一緒=::使用され、テーブル名の前に使用されるのですか?

4

1 に答える 1

1

@objectスニペットは、 isfalseまたはnil;であるかどうかを確認します。Tablenameそうである場合は、最上位の名前空間で指定されたメソッドを呼び出すことによって生成された値を割り当てます。

これは、||=「値が現在falseの場合に割り当てる」という意味であるためです。スコープ::解決演算子です。多くの場合、モジュール内の定数にNet::HTTPアクセスする場合のように、左側にクラス名が表示されます。左側に名前がない場合は、「最上位スコープ内」を意味します。HTTPNet

于 2012-12-18T10:30:09.153 に答える