【问题标题】:Unhandled Server Error!!! unknown attribute 'image' for Property未处理的服务器错误!!!属性的未知属性“图像”
【发布时间】:2018-09-25 09:45:36
【问题描述】:

我正在努力解决这个问题。我使用React Js 作为前端,使用Ruby on Rails 作为后端。我将一些值从React 传递到Ruby on Rails 以进行处理。该值通过带有cycle.js 的API 传递。基本上,我正在做的是1)将图像转换为Base64, 2)使用PaperlipProperty附加图像, 3)存储Base64服务器中的字符串。 错误是:

 Unhandled Server Error!!!
 unknown attribute 'image' for Property.

这是后端的代码:

property.rb

 class Property < ActiveRecord::Base
 include PropertySharedMethods
 has_many :property_images, as: :imageable

property_image.rb

 class PropertyImage < ActiveRecord::Base
 belongs_to :imageable, polymorphic: true, optional: true

 has_attached_file :image
 # Validate content type
 validates_attachment_content_type :image, :content_type => /\Aimage/

所以,property_image 是多态的。图片上传将上传到 AWS。对于前端,API请求成功,但我不知道我的后端代码有什么问题导致这个错误。

请帮忙。谢谢。

【问题讨论】:

  • 您必须在PropertyImage 实例上调用#image,而不是在Property 上调用(这是错误的来源)。
  • 另外,我不确定你是否真的需要polymorphic
  • 我使用polymorphic,因为property功能是保存属性的数据并使用imageable_id将其与property_image链接。 property_image是保存图片或者Base64字符串。
  • 检查您的控制器是否有允许的参数,您可能忘记将图像添加到允许的参数列表中,例如:params.require(:property_image).permit(:image)
  • @teckden,你是对的。这是关于允许参数image。谢谢!!!

标签: ruby-on-rails ruby reactjs base64 paperclip


【解决方案1】:

您需要检查您的控制器是否有允许的参数,您可能忘记将图像添加到允许的参数列表中,例如:params.require(:property_image).permit(:image)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 2015-11-05
    相关资源
    最近更新 更多