【问题标题】:rails admin + carrierwave updating breaks the image urlrails admin + carrierwave 更新会破坏图像 url
【发布时间】:2017-09-06 02:43:34
【问题描述】:

我正在使用带有 rails_admin 和carrierwave gems 的 Rails 5。

我有一个模型 Photo 和安装在其上的图像上传器(根据载波文档),大致如下:

class Photo < ActiveRecord::Base
  mount_uploader :image, ImageUploader

  belongs_to :project

  validates :name, presence: true
  validates :image, presence: true
end

鉴于我已经创建了一些 Photo 对象,我可以在 rails_admin 管理视图中看到它们的列表。

然后我开始编辑其中一个 我编辑名字 然后我继续保存它

然后 rails admin 启动了它的一些魔法并且照片正在保存,但在此操作之后图像消失了。

我一直在挖掘什么请求被触发,rails_admin 触发带有这样参数的PUT 请求:

{
 "authenticity_token"=>"xxx",
 "photo"=>{
   "name"=>"test2",
   "description"=>"ewdeeweeefxxxwefwe",
   "project_id"=>"3",
   "image_cache"=>"",
   "main"=>"0",
   "about_us"=>"0"
},
"return_to"=>"http://localhost:3000/panel-admin/photo?model_name=photo", "_save"=>"", "model_name"=>"photo", "id"=>"29"}

我的Photo 对象不仅更新为name,还更新为image_url,这当然会覆盖已经安装到PhotoImage

我不知道为什么会发生这种情况以及如何防止它。

任何人都可能遇到过这个问题并且知道如何解决它?

【问题讨论】:

  • 我认为它可能需要对 image_cache 做一些事情,但还不能解决问题。也许rails_admin 没有将正确的 image_cache 设置为编辑视图中的隐藏表单元素?将尝试进一步调查

标签: ruby-on-rails ruby carrierwave ruby-on-rails-5 rails-admin


【解决方案1】:

我发现了。当我在上传器中取消注释我的自定义 filename 方法时,它运行良好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多