如何写这个漂亮的方式?rails

时间:2016-06-03 19:59:32

标签: ruby-on-rails

我试图在我的视图中以更优雅的方式编写此代码。 你能救我吗?

<%= if category.photo.present?
    category.photo
    else 
    category.img_parse_url
end %>

category.photo可能是nil或空字符串)

1 个答案:

答案 0 :(得分:1)

你可以使用这里不需要的try方法@tadman指出,此外,正如你在评论photo中写的那样,可以是一个空字符串(我错误地认为它不可能)所以如果category.photo只是一个空字符串,那么这两个版本将返回一个空字符串:

<= category.try(:photo) || category.img_parse_url %>

没有try

<= category.photo || category.img_parse_url %>

或将其移至模型。

编辑:

如果照片可以是空字符串,那么可以使用三元运算符吗?

<%= category.photo.present? ? category.photo : category.img_parse_url %>

或使用presence方法:

<%= category.photo.presence || category.img_parse_url %>