这个错误通常发生在使用ActiveStorage时,尝试访问未上传或未存在的附件时。下面是一些可能导致这个错误的代码示例以及解决方法:
<%= image_tag @user.avatar.variant(resize: "100x100") %>
解决方法:在使用附件之前,确保检查该附件是否存在。
<% if @user.avatar.attached? %>
<%= image_tag @user.avatar.variant(resize: "100x100") %>
<% end %>
def show
@user = User.find(params[:id])
@avatar_url = @user.avatar.variant(resize: "100x100").url
end
解决方法:在使用附件之前,确保检查该附件是否存在。
def show
@user = User.find(params[:id])
if @user.avatar.attached?
@avatar_url = @user.avatar.variant(resize: "100x100").url
end
end
class User < ApplicationRecord
has_one_attached :avatar
after_commit :process_avatar, on: :create
def process_avatar
self.avatar.variant(resize: "100x100").processed
end
end
解决方法:在使用附件之前,确保检查该附件是否存在。
class User < ApplicationRecord
has_one_attached :avatar
after_commit :process_avatar, on: :create
def process_avatar
if self.avatar.attached?
self.avatar.variant(resize: "100x100").processed
end
end
end
通过在使用附件之前检查附件是否存在,可以避免出现“未定义方法'[]'用于nil:NilClass”的错误。
上一篇:ActiveStorage_blobpartial未被尊重或加载
下一篇:ActiveStorage:通过附件文件名对ActiveRecord模型进行排序(ERROR缺少FROM子句条目表'active_storage_blobs”)