1. ホーム
  2. ruby-on-rails

[解決済み] Rubyで.exists?と.present?を使うことの違いは何ですか?

2022-03-08 15:56:34

質問

正しい使い方をしたいのですが、何か微妙な点があれば教えてください。 コンソールから使っても、オブジェクトフィールドが定義されているかどうかを確認するという機能は同じようで、ネットでググってもあまり情報がないのです。ありがとうございます。

解決方法は?

明確にするために:どちらも present? また exists? はquot;pure"rubyで、どちらもRailsランドから来たものです。

プレゼント?

present? は、ActiveSupportの拡張機能である Object . これは通常、オブジェクトの一般的な虚偽性をテストするために使用されます。由来 ドキュメント :

オブジェクトは present でない場合は blank? . オブジェクトは blank であれば false または空白文字列です。

だから、例えば

[ "", " ", false, nil, [], {} ].any?(&:present?)
# => false

が存在するか?

exists? はActiveResourceからです。からです。 そのドキュメント :

リソースの存在を主張し、リソースが見つかればtrueを返す。

Note.create(:title => 'Hello, world.', :body => 'Nothing more for now...')
Note.exists?(1) # => true