@user.user_profile.prefecture.name if !@user.user_profile.prefecture.blank?
空白のときに「選択されていません」と表示したい。
このコードをカスタマイズするにはどうすればよいですか?
コントローラ
@user.profile.prefecture.name if !@user.profile.prefecture.blank?
@user.user_profile.prefecture.name if !@user.user_profile.prefecture.blank?
空白のときに「選択されていません」と表示したい。
このコードをカスタマイズするにはどうすればよいですか?
@user.profile.prefecture.name if !@user.profile.prefecture.blank?
少し冗長な三項演算子を使用できます。
@user.profile.prefecture.blank? ? "Not selected" : @user.profile.prefecture.name
または、prefecture
が実際に nil/not-nil の場合は、 を取り除きますblank?
:
@user.profile.prefecture ? @user.profile.prefecture.name : "Not selected"
最後に、ほとんどの熟達した Ruby 開発者にとって非常に読みやすいと思われるtry
and をもう少し工夫することもできます。||
@user.profile.prefecture.try(:name) || "Not selected"
このような
if @user.profile.prefecture.blank?
'not selected'
else
@user.profile.prefecture.name
end
更新しました:
1- false、空、または空白文字列の場合、オブジェクトは空白です
2-条件が偽でない限り実行するステートメントコード
答え:
!@user.profile.prefecture.blank? でない限り「未選択」
説明: @user.profile.prefecture.blank? @user.profile.prefecture が false、空、または否定演算子がそれを false に変換する空白文字列であるたびに true を返し、unless コードセクションを実行できるようにします。
このアプローチは私にとって非常に「Ruby」であり、非常に理解しやすいはずです。