2

@user.user_profile.prefecture.name if !@user.user_profile.prefecture.blank?空白のときに「選択されていません」と表示したい。

このコードをカスタマイズするにはどうすればよいですか?

コントローラ

@user.profile.prefecture.name if !@user.profile.prefecture.blank?
4

3 に答える 3

3

少し冗長な三項演算子を使用できます。

@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 開発者にとって非常に読みやすいと思われるtryand をもう少し工夫することもできます。||

@user.profile.prefecture.try(:name) || "Not selected"
于 2013-03-20T06:03:18.297 に答える
2

このような

if @user.profile.prefecture.blank?
  'not selected'
else
  @user.profile.prefecture.name
end
于 2013-03-20T06:02:11.340 に答える
-1

更新しました:

1- false、空、または空白文字列の場合、オブジェクトは空白です

2-条件が偽でない限り実行するステートメントコード

答え:

!@user.profile.prefecture.blank? でない限り「未選択」

説明: @user.profile.prefecture.blank? @user.profile.prefecture が false、空、または否定演算子がそれを false に変換する空白文字列であるたびに true を返し、unless コードセクションを実行できるようにします。

このアプローチは私にとって非常に「Ruby」であり、非常に理解しやすいはずです。

于 2013-03-20T06:09:47.940 に答える