在erb标签中允许nil值

时间:2019-02-19 21:42:05

标签: ruby-on-rails activerecord rails-activestorage

如果该标签为空,我正在尝试忽略该标签。它旨在使用活动存储来显示图像,但是,如果尚未将该图像添加到记录中,则会引发错误。

<%= image_tag url_for(a.object.image), size: "400x400" %>

有什么办法可以调整语法以适应这种情况?

尝试过:

<%= image_tag url_for(a.object.image).nil?, size: "400x400" %>

这:

<%= if image_tag url_for(a.object.image).nil?, size: "400x400" %>

  <h1>Add images here</h1>

<% else %>

  <% image_tag url_for(a.object.image), size: "400x400" %>

<% end %>

2 个答案:

答案 0 :(得分:0)

您的第二个代码块几乎拥有了它。更改条件谓词以检查a&.object&.image.nil?。另外,我相信ERB不支持<%=的{​​{1}}。将等号移至if行。

image_tag

答案 1 :(得分:0)

您可以做这样的事情

if a.object.image.present?
  <% image_tag url_for(a.object.image), size: "400x400" %>
end

意思是如果a.object有图像,则显示它,如果没有,则忽略它