[解決済み] object.presenceのポイントとは?
2023-05-14 15:50:59
質問
Railsのドキュメントで
が提供する例
に対して
object.presence
というメソッドがあります。
region = params[:state].presence || params[:country].presence || 'US'
と同等ではないか。
region = params[:state] || params[:country] || 'US'
を使う意味は何ですか?
presence
?
どのように解決するのですか?
ここがポイントです。
''.presence
# => nil
ということは
params[:state] == ''
:
region = params[:state].presence || 'US'
# => 'US'
region = params[:state] || 'US'
# => ''
さらに、これは似たような方法で動作します。
nil
に応答する全てのオブジェクトに対して同様の動作(つまり、オブジェクトが'空'であれば、empty?
メソッドに応答する全てのオブジェクトに適用されます。
[].presence
# => nil
参考までにドキュメントを紹介します。
http://api.rubyonrails.org/classes/Object.html#method-i-presence
関連
-
[解決済み] bundle install --without production は何をするのですか?
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Rails DBの移行 - テーブルを削除するには?
-
[解決済み] RSpecのlet()はいつ使うのか?
-
[解決済み] Rubyのクラス名を取得する方法を教えてください。
-
[解決済み] RubyのハッシュオブジェクトをJSONに変換する方法は?
-
[解決済み】Railsの認証トークンを理解する
-
[解決済み】Rails: モデルがすでに存在するときに`rails generate scaffold`を実行するにはどうすればよいですか?
-
[解決済み] Ruby on Railsでセッターメソッドをオーバーライドする正しい方法は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Rails: sudo "コマンドが認識されないのはなぜですか?
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み] どのようにrailsでラジオボタンを正しく使用するには?
-
[解決済み] 新規ユーザー作成時に ActiveModel::ForbiddenAttributesError が発生する。
-
[解決済み] RoRにおけるSpringサーバーの機能とは?
-
[解決済み] Devise Admin Roleの追加【終了しました
-
[解決済み] ルビーオンレール モデルから明確な値を選択する
-
[解決済み] 構文エラー "構文エラー、予期しない入力終了、keyword_endを期待 (SyntaxError)"
-
[解決済み] Ruby on rails アプリで ES6 (ES2015) を使用するにはどうすればよいですか?
-
[解決済み] 属性とカラムの違いは何ですか?