【发布时间】: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,这当然会覆盖已经安装到Photo 的Image
我不知道为什么会发生这种情况以及如何防止它。
任何人都可能遇到过这个问题并且知道如何解决它?
【问题讨论】:
-
我认为它可能需要对 image_cache 做一些事情,但还不能解决问题。也许
rails_admin没有将正确的 image_cache 设置为编辑视图中的隐藏表单元素?将尝试进一步调查
标签: ruby-on-rails ruby carrierwave ruby-on-rails-5 rails-admin