【问题标题】:Allowing nil values in erb tag在 erb 标签中允许 nil 值
【发布时间】:2019-02-19 21:42:05
【问题描述】:

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

<%= 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 %>

【问题讨论】:

  • 使用此代码时遇到什么错误?请在此周围添加更多代码(直到您的 do 声明,如果您有的话)。
  • @DylanReile,这似乎不起作用。我收到这个语法错误:语法错误,意外',',期待')' ppend=( a&.object&.image.nil?, size: "400x400" );@output_buf ^

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


【解决方案1】:

您的第二个代码块几乎拥有它。更改条件谓词以检查a&amp;.object&amp;.image.nil?。此外,我相信 ERB 不支持 &lt;%=if。将等号移到带有image_tag 的行。

<% if a&.object&.image.nil? %>
  <h1>Add images here</h1>
<% else %>
  <%= image_tag url_for(a.object.image), size: "400x400" %>
<% end %>

【讨论】:

  • 嗨,它仍然不喜欢这个 抛出语法错误:/
  • @WernerAdewole 我不确定,但请尝试将= 移出if 的行,然后将其移至image_tag 的行。我已经更新了我的答案以反映我的意思。
【解决方案2】:

你可以这样做

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

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

【讨论】:

    猜你喜欢
    • 2018-07-15
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    相关资源
    最近更新 更多