我想在@user.user_profile.prefecture.name if !@user.user_profile.prefecture.blank?
为空时显示“未选中”。
如何自定义此代码?
@user.profile.prefecture.name if !@user.profile.prefecture.blank?
答案 0 :(得分: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"
最后,您可以使用try
和||
稍微更加花哨,大多数熟练的Ruby开发人员会发现它们非常易读:
@user.profile.prefecture.try(:name) || "Not selected"
答案 1 :(得分:2)
喜欢这个
if @user.profile.prefecture.blank?
'not selected'
else
@user.profile.prefecture.name
end
答案 2 :(得分:-1)
更新:
1-如果对象为假,空或空白字符串
,则该对象为空2-除非条件为假,否则执行语句代码
答案:
除非!@ user.profile.prefecture.blank?,否则“未选中”
解释:@ user.profile.prefecture.blank?每次@ user.profile.prefecture为false,为空时,或者为否定运算符将其转换为false的空白字符串,将返回true,因此可以执行除非代码部分。
这种方法对我来说非常“红润”,应该很容易理解。