rails admin + carrierwave更新会破坏图片网址

时间:2017-04-10 22:04:25

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

我使用Rails 5和rails_admin以及carrierwave gems。

我有一个模型Photo和图像上传器(根据carrierwave文档),看起来大致如下:

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

  belongs_to :project

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

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

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

然后rails管理员发射了一些魔法并且照片正在保存,但是在这个动作之后图像消失了。

我一直在挖掘一下请求被解雇的内容,并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当然会覆盖已安装到Image的{​​{1}} Photo

我不知道为什么会这样,以及如何防止它。

任何人都可能遇到此问题并知道如何解决它?

1 个答案:

答案 0 :(得分:0)

我发现了。当我取消注释上传器中的自定义filename方法时,它会很好地工作。