[英]Why can't I include dynamic image_tag in HTML?
我正在嘗試使用 image_tag 在 Rails 中顯示圖像,以便它可以根據用戶是否將頭像附加到他們的帳戶來動態更改,但是我不斷收到<% if resource.avatar.attached?
的錯誤<% 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>
在img
標簽中設置alt
屬性是一個很好的做法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.