[解決済み] 文字列が空の場合、何らかのデフォルト値を返す
2022-12-30 04:18:55
質問
ある値が空白かどうかをチェックして、「データが存在しない」というような記述をしたいことがよくあります。
@user.address.blank? ? "We don't know user's address" : @user.address
そして、この方法で処理する必要のあるフィールドが20~30個くらいになると、醜くなってきます。
そこで、Stringクラスを拡張して
or
というメソッドで
class String
def or(what)
self.strip.blank? ? what : self
end
end
@user.address.or("We don't know user's address")
今、それはより良く見えます。しかし、まだ生々しく粗い
私の問題を解決するにはどうしたらいいでしょうか。たぶん
ActiveSupport class
を拡張するのがいいのか、ヘルパーメソッドやミキシンを使うのがいいのか、 それとも他の何かを使うのがいいのか。Rubyの理想論、あなたの経験、ベストプラクティスは私に教えてくれますか?
どのように解決するのですか?
ActiveSupportでは、Webサイト上に
presence
メソッドをすべてのオブジェクトに追加し、そのレシーバが
present?
(の反対)。
blank?
)、そして
nil
でなければ
例
host = config[:host].presence || 'localhost'
関連
-
[解決済み】コントローラでJSONをレンダリングする
-
[解決済み] 変更欄のRailsマイグレーション
-
[解決済み] どなたか、collection_selectをわかりやすく説明していただけませんか?
-
[解決済み] Rspec が私のモデルクラスを認識しない。初期化されていない定数エラー
-
[解決済み] Heroku Error R14 (Memory quota exceeded): How do I solve this?
-
[解決済み] Rails 4で、以前のバージョンのRailsでattr_accessibleを使用していた状況に遭遇した場合、Forbidden Attributes Errorが発生する。
-
[解決済み] 実行時にメソッドが定義されている場所を見つけるには?
-
[解決済み】RubyにあってPythonにないもの、またその逆は何ですか?
-
[解決済み] Railsでユニークなトークンを作成するための最良の方法?
-
[解決済み] Rubyのモジュール/ミキシンからクラスメソッドを継承する
最新
-
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 "コマンドが認識されないのはなぜですか?
-
[解決済み】修正方法:エラー:'<ファイル名>'にチェックアウトされたコミットがない fatal: コマンドプロンプトで "git add ." を入力するとファイルの追加に失敗する
-
[解決済み】Rails 4 RoutingError: ルートが一致しない[POST]。
-
[解決済み】bcrypt LoadError: Cannot load such file
-
[解決済み】コレクションをDESCで並べる方法
-
[解決済み】Webpacker::Manifest::MissingEntryError【クローズド
-
[解決済み] Ruby/Rails の「フック」とは何ですか?
-
[解決済み] heroku push rejected, failed to compile Ruby/rails app
-
[解決済み] PG::ConnectionBad - サーバーに接続できませんでした。接続が拒否されました。
-
[解決済み] ルビーオンレール モデルから明確な値を選択する