【发布时间】:2018-09-25 09:45:36
【问题描述】:
我正在努力解决这个问题。我使用React Js 作为前端,使用Ruby on Rails 作为后端。我将一些值从React 传递到Ruby on Rails 以进行处理。该值通过带有cycle.js 的API 传递。基本上,我正在做的是1)将图像转换为Base64, 2)使用Paperlip为Property附加图像, 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