ruby-on-rails - 为什么我不能在 HTML 中包含动态 image_tag?
问题描述
我正在尝试使用 image_tag 在 Rails 中显示图像,以便它可以根据用户是否将头像附加到他们的帐户而动态更改,但我不断收到
<% if resource.avatar.attached?
. 它还指出
“#<#:0x0000561b852e6890> 的未定义局部变量或方法 `resource' 你的意思是?救援”
我不知道是什么原因造成的,我能做些什么来解决这个问题?
错误
<div>
<% if resource.avatar.attached? %>
<%= image_tag @user.avatar, class:"rounded-circle" %>
<% else %>
<%= image_tag("fallback/default-avatar.png", class:"rounded-circle") %>
<% end %>
</div>
解决方案
问题是resource
未定义。
只需更改resource
为@user
:
<div>
<% if @user.avatar.attached? %>
<%= image_tag @user.avatar, class:"rounded-circle" %>
<% else %>
<%= image_tag("fallback/default-avatar.png", class:"rounded-circle") %>
<% end %>
</div>
但最好像这样制作助手:
module AvatarHelper
def avatar(resource)
if resource.avatar.attached?
image_tag resource.avatar, class: "rounded-circle"
else
image_tag "fallback/default-avatar.png", class: "rounded-circle"
end
end
end
然后只需在您的视图中添加此代码:
<div><%= avatar(@user) %></div>
在标签中制作alt
属性是一种很好的做法。img
推荐阅读
- numpy - Gaussian 的 Numpy FFT 不给出 Gaussian
- python - 使用 getRequests 设置异步
- python - 当firestore on_snapshot不可等待时如何将_message写入websocket?
- objective-c - Xcode 未检测到任何 NeXTSTEP / Foundation / Cocoa 类(无自动完成)
- java - 在 JSP 视图中显示递归模型时如何修复“无法从类型 java.lang.String 转换为类型 @javax.persistence.Id”
- c# - 如何确保不再调用 RhinoMocks 中的方法?
- r - 如何使用 mapply 或任何循环将变量导入和分配到 R 中?
- sql-server - SQL从日期+时间跨度插入日期时间
- c# - 如何使用 Asp.net Core MVC(Missing Namespace for .Net Core)在共享点上创建文档
- artifactory - 尝试上传已有版本时强制 JFrog Artifactory 失败