该问题通常是由于未在模型中定义Active Storage附件而导致的。确保在模型中包括以下内容:
在模型中定义has_one_attached或has_many_attached,如以下示例:
class User < ApplicationRecord
has_one_attached :avatar
end
使用ActiveStorage::Current.set将当前上下文设置为当前请求,如以下示例:
def show
@user = User.find(params[:id])
ActiveStorage::Current.set(host: request.base_url) do
render json: { user: @user, avatar_url: url_for(@user.avatar) }
end
end
请注意,如果未设置当前上下文,则ActiveStorage附件无法生成URL,从而导致此错误。