Railsを使用しており、attr_accessor :politics
は、デフォルトでfalseに設定されています。
誰もこれを行う方法を知っていて、私のために簡単な言葉で説明できますか?
Railsには attr_accessor_with_default があるため、次のように記述できます。
class Like
attr_accessor_with_default :politics,false
end
i = Like.new
i.politics #=> false
そしてそれはすべてです
[〜#〜] update [〜#〜]
attr_accessor_with_default は、Rails 3.2。で廃止されました。代わりに、純粋なRubyでこれを行うことができます。
class Like
attr_writer :politics
def politics
@politics || false
end
end
i = Like.new
i.politics #=> false
Virtus gemを使用できます。
https://github.com/solnic/virtus
READMEから:
Virtusでは、タイプ、リーダー/ライターメソッドの可視性、強制動作に関するオプション情報を使用して、クラス、モジュール、またはクラスインスタンスの属性を定義できます。多くの強制と、埋め込みオブジェクトとコレクションの高度なマッピングをサポートします。
具体的には、 デフォルト値 をサポートしています。
Attr_accessorを定義する場合、デフォルトでは値はnil
です。あなたはそれに書き込み、それによってそれを!nil
にすることができます