gpt4 book ai didi

ruby-on-rails - rails - 通过 Active Storage 上传文件后在 View 中显示图像

转载 作者:行者123 更新时间:2023-12-04 08:40:40 24 4
gpt4 key购买 nike

我有一个在 rails 上的项目 5.1.2我正在尝试在其上实现 Active Storage,按照在线教程我能够设置 Active Storage,并且可以看到数据保存在 active_storage_blobs 中。和 active_storage_attachments table 。

  • Tutorial 1
  • Tutorial 2

  • 我也通过运行 user.avatar.attached? 确认作为回应,我得到了真实的回应,所以事情正在奏效。

    我遇到的问题是在 View 中显示图像,我试过了
    <%= image_tag(url_for(user.avatar)) %>

    NoMethodError: undefined method `active_storage_attachment_path'



    我为设置 Active Storage 所做的工作

    运行安装命令
    rails active_storage:install

    这给出了错误不知道如何构建任务 'active_storage:install'

    但以下命令有效
    rails activestorage:install

    我已添加 gem 'activestorage'gemfile
    这是我的 storage_services.yml
    test:
    service: Disk
    root: <%= Rails.root.join("tmp/storage") %>

    local:
    service: Disk
    root: <%= Rails.root.join("storage") %>

    在我的 development.rb 里面我已经添加了
    config.active_storage.service = :local

    在我的 User 里面我添加的型号 has_one_attached :avatar
    在 Controller 更新时我添加了附件代码
    user.avatar.attach(params[:user][:avatar])
  • 我可以看到正在数据库中添加的图像,
  • 我可以看到图像保存在 root
  • 的存储目录中

    然而我无法显示它,

    我在这里缺少什么?我需要做什么才能让图像显示在 View 中?为什么我收到这个错误

    NoMethodError: undefined method `active_storage_attachment_path'

    最佳答案

    你能查一下你的config/appication.rb吗?文件,如果你添加了这一行:

    require "active_storage/engine"

    我建议您将 Rails 版本升级到 5.2 beta因为它已与 Active Storage gem 合并。如果您的应用程序具有良好的测试覆盖范围,您现在就可以做到。从 5.1 到 5.2 的变化并不多见 http://edgeguides.rubyonrails.org/5_2_release_notes.html .但它还不稳定,所以你需要检查你是否可以承担这个风险。

    关于ruby-on-rails - rails - 通过 Active Storage 上传文件后在 View 中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46971979/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com