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"

最后,您可以稍微花点心思使用tryand ||,大多数熟练的 Ruby 开发人员会发现它非常易读:

@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- 如果对象为假、空或空白字符串,则该对象为空

2-除非条件为假,否则要执行的语句代码

回答:

“未选择”,除非 !@user.profile.prefecture.blank?

解释:@user.profile.prefecture.blank?每次 @user.profile.prefecture 为 false、空或空格字符串时都会返回 true,因为否定运算符将其转换为 false,因此可以执行除非代码部分。

这种方法对我来说非常“Ruby”,应该很容易理解。

于 2013-03-20T06:09:47.940 回答