簡體   English   中英

為什么我不能在 HTML 中包含動態 image_tag?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM