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